Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Performance Benchmarks #52

Open
2 tasks
WalterWoshid opened this issue Sep 16, 2023 · 4 comments
Open
2 tasks

Performance Benchmarks #52

WalterWoshid opened this issue Sep 16, 2023 · 4 comments
Assignees
Labels
documentation 📝 Improvements or additions to documentation enhancement 🎆 New feature or request

Comments

@WalterWoshid
Copy link
Contributor

WalterWoshid commented Sep 16, 2023

I have added some performance benchmarks with various conditions.


Numbers test

The basic test consists of a Numbers class with the property int $number = 0 and the methods get(): int and add(int $number).

The Numbers test will include 4 cases:

  • Without Aspects:
    • We don't have aspects here, so we emulate them
    • Create x NumbersService classes which act like the aspects
    • Run the main method of the copies of the NumbersService classes which modifies the Numbers class y times
  • With Aspects:
    • Clean the cache
    • Create x aspects
    • Run the main method of the Numbers class with the applied aspects y times
  • With Cached Aspects:
    • The same as "With Aspects", but without the boot up time (Generating proxy and woven files) that will be used from the cache
  • Production environment:
    • The same as "With Cached Aspects", but the cache will not be checked before loading the cached proxy and woven files

Time complexity

  • TODO: For later I want to add some kind of formula for time complexity, so it can be measured with possible performance updates to the library.

I created a GitHub workflow performance-tests.yml and also run them locally on my machines. Below in the comments are the results. Comment your results, if you have a workstation or a server for a better comparison.


Inspection

I have tested with Xdebug (Okapi/AOP 1.2.4) where the bottlenecks are and here is what I found:

  • WovenClassBuilder::buildMethod() / (new Factory)->fromMethodReflection($refMethod) takes some time
  • In the MeasurePerformanceTest::measurePerformance / $result = $numbers->get() in the $useAspects if statement, takes some time (both in the uncached and cached test), this could possible be made better with this issue: Remove JoinPointInjector if possible #53
@WalterWoshid WalterWoshid added documentation 📝 Improvements or additions to documentation enhancement 🎆 New feature or request labels Sep 16, 2023
@WalterWoshid WalterWoshid changed the title Create Benchmarks to measure Performance Performance Benchmarks Sep 17, 2023
@WalterWoshid WalterWoshid self-assigned this Sep 17, 2023
@WalterWoshid WalterWoshid pinned this issue Sep 17, 2023
@WalterWoshid
Copy link
Contributor Author

WalterWoshid commented Sep 17, 2023

GitHub Workflow (PHP 8.1 - Okapi/AOP 1.2.7):
  • Ubuntu (latest)
  • 2-core CPU (x86_64)
  • 7 GB of RAM
  • 14 GB of SSD space
Run vendor/bin/phpunit --testsuite=Performance --display-notices
PHPUnit 10.4.2 by Sebastian Bergmann and contributors.

Runtime:       PHP [8](https://github.com/okapi-web/php-aop/actions/runs/6722184307/job/18269568190#step:7:9).1.25
Configuration: /home/runner/work/php-aop/php-aop/phpunit.xml

....

1 aspect, 1 execution
---------------------

Table 1: Without Aspects vs With Aspects (1 aspect, 1 execution)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00031900 s | 0.20448399 s | +0.20416498 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02142191 s | +0.02141976 s |
| Class Loading Time         | Time   | 0.00030088 s | 0.18203807 s | +0.18173718 s |
| Execution Time             | Time   | 0.00000596 s | 0.00101209 s | +0.00100613 s |
| From Start to End          | Memory |    0.0033 MB |    2.3027 MB |    +2.2993 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2402 MB |    +0.2402 MB |
| Class Loading Time         | Memory |    0.0015 MB |    2.0591 MB |    +2.0576 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1 aspect, 1 execution)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00031900 s |   0.02594209 s | +0.02562308 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s |   0.02293205 s | +0.02292991 s |
| Class Loading Time         | Time   | 0.00030088 s |   0.00186491 s | +0.00156403 s |
| Execution Time             | Time   | 0.00000596 s |   0.00113392 s | +0.00112796 s |
| From Start to End          | Memory |    0.0033 MB |      0.2604 MB |    +0.2571 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.2453 MB |    +0.2453 MB |
| Class Loading Time         | Memory |    0.0015 MB |      0.0118 MB |    +0.0102 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1 aspect, 1 execution)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00031900 s | 0.02589011 s | +0.02557111 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02251196 s | +0.02250981 s |
| Class Loading Time         | Time   | 0.00030088 s | 0.00181103 s | +0.00151014 s |
| Execution Time             | Time   | 0.00000596 s | 0.00155520 s | +0.00154924 s |
| From Start to End          | Memory |    0.0033 MB |    0.2581 MB |    +0.2548 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2430 MB |    +0.2430 MB |
| Class Loading Time         | Memory |    0.0015 MB |    0.0117 MB |    +0.0102 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1 aspect, 1 execution)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.02594209 s | 0.02589011 s | -0.00005198 s |
| Boot Time - Kernel::init() | Time   |   0.02293205 s | 0.02251196 s | -0.00042009 s |
| Class Loading Time         | Time   |   0.00186491 s | 0.00181103 s | -0.00005388 s |
| Execution Time             | Time   |   0.00113392 s | 0.00155520 s | +0.00042129 s |
| From Start to End          | Memory |      0.2604 MB |    0.2581 MB |    -0.0023 MB |
| Boot Time - Kernel::init() | Memory |      0.2453 MB |    0.2430 MB |    -0.0023 MB |
| Class Loading Time         | Memory |      0.0118 MB |    0.0117 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

5 aspects, 5 executions
-----------------------

Table 1: Without Aspects vs With Aspects (5 aspects, 5 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00048780 s | 0.21203184 s | +0.21154404 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.02189088 s | +0.02188897 s |
| Class Loading Time         | Time   | 0.00046611 s | 0.18841100 s | +0.18794489 s |
| Execution Time             | Time   | 0.00001001 s | 0.00171804 s | +0.00170803 s |
| From Start to End          | Memory |    0.0064 MB |    2.3229 MB |    +2.3165 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2545 MB |    +0.2545 MB |
| Class Loading Time         | Memory |    0.0046 MB |    2.0650 MB |    +2.0603 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (5 aspects, 5 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00048780 s |   0.02748084 s | +0.02699304 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.02375293 s | +0.02375102 s |
| Class Loading Time         | Time   | 0.00046611 s |   0.00197601 s | +0.00150990 s |
| Execution Time             | Time   | 0.00001001 s |   0.00173903 s | +0.00172901 s |
| From Start to End          | Memory |    0.0064 MB |      0.2766 MB |    +0.2701 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.2620 MB |    +0.2620 MB |
| Class Loading Time         | Memory |    0.0046 MB |      0.0112 MB |    +0.0066 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (5 aspects, 5 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00048780 s | 0.02738500 s | +0.02689719 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.02391100 s | +0.02390909 s |
| Class Loading Time         | Time   | 0.00046611 s | 0.00200200 s | +0.00153589 s |
| Execution Time             | Time   | 0.00001001 s | 0.00145912 s | +0.00144911 s |
| From Start to End          | Memory |    0.0064 MB |    0.2688 MB |    +0.2624 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2542 MB |    +0.2542 MB |
| Class Loading Time         | Memory |    0.0046 MB |    0.0112 MB |    +0.0066 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (5 aspects, 5 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.02748084 s | 0.02738500 s | -0.00009584 s |
| Boot Time - Kernel::init() | Time   |   0.02375293 s | 0.02391100 s | +0.00015807 s |
| Class Loading Time         | Time   |   0.00197601 s | 0.00200200 s | +0.00002599 s |
| Execution Time             | Time   |   0.00173903 s | 0.00145912 s | -0.00027990 s |
| From Start to End          | Memory |      0.2766 MB |    0.2688 MB |    -0.0078 MB |
| Boot Time - Kernel::init() | Memory |      0.2620 MB |    0.2542 MB |    -0.0078 MB |
| Class Loading Time         | Memory |      0.0112 MB |    0.0112 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

20 aspects, 20 executions
-------------------------

Table 1: Without Aspects vs With Aspects (20 aspects, 20 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00227714 s | 0.21849704 s | +0.21621990 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02540517 s | +0.02540302 s |
| Class Loading Time         | Time   | 0.00166488 s | 0.18787408 s | +0.18620920 s |
| Execution Time             | Time   | 0.00060081 s | 0.00520611 s | +0.00460529 s |
| From Start to End          | Memory |    0.0189 MB |    2.4761 MB |    +2.4572 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3128 MB |    +0.3128 MB |
| Class Loading Time         | Memory |    0.0171 MB |    2.1599 MB |    +2.1428 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (20 aspects, 20 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00227714 s |   0.03325415 s | +0.03097701 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s |   0.02547193 s | +0.02546978 s |
| Class Loading Time         | Time   | 0.00166488 s |   0.00271201 s | +0.00104713 s |
| Execution Time             | Time   | 0.00060081 s |   0.00505805 s | +0.00445724 s |
| From Start to End          | Memory |    0.0189 MB |      0.4069 MB |    +0.3880 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.3259 MB |    +0.3259 MB |
| Class Loading Time         | Memory |    0.0171 MB |      0.0151 MB |    -0.0020 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (20 aspects, 20 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00227714 s | 0.03462315 s | +0.03234601 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02663493 s | +0.02663279 s |
| Class Loading Time         | Time   | 0.00166488 s | 0.00272703 s | +0.00106215 s |
| Execution Time             | Time   | 0.00060081 s | 0.00524807 s | +0.00464725 s |
| From Start to End          | Memory |    0.0189 MB |    0.3148 MB |    +0.2959 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2964 MB |    +0.2964 MB |
| Class Loading Time         | Memory |    0.0171 MB |    0.0151 MB |    -0.0021 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (20 aspects, 20 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.03325415 s | 0.03462315 s | +0.00136900 s |
| Boot Time - Kernel::init() | Time   |   0.02547193 s | 0.02663493 s | +0.00116301 s |
| Class Loading Time         | Time   |   0.00271201 s | 0.00272703 s | +0.00001502 s |
| Execution Time             | Time   |   0.00505805 s | 0.00524807 s | +0.00019002 s |
| From Start to End          | Memory |      0.4069 MB |    0.3148 MB |    -0.0921 MB |
| Boot Time - Kernel::init() | Memory |      0.3259 MB |    0.2964 MB |    -0.0295 MB |
| Class Loading Time         | Memory |      0.0151 MB |    0.0151 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0641 MB |    0.0016 MB |    -0.0625 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

50 aspects, 50 executions
-------------------------

Table 1: Without Aspects vs With Aspects (50 aspects, 50 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00393391 s | 0.23452997 s | +0.23059607 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.03014493 s | +0.03014302 s |
| Class Loading Time         | Time   | 0.00359702 s | 0.18971395 s | +0.18611693 s |
| Execution Time             | Time   | 0.00032401 s | 0.01465797 s | +0.01433396 s |
| From Start to End          | Memory |    0.0998 MB |    2.6275 MB |    +2.5277 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.4792 MB |    +0.4792 MB |
| Class Loading Time         | Memory |    0.0980 MB |    2.1449 MB |    +2.0469 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (50 aspects, 50 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00393391 s |   0.04739308 s | +0.04345918 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.03055286 s | +0.03055096 s |
| Class Loading Time         | Time   | 0.00359702 s |   0.00307703 s | -0.00051999 s |
| Execution Time             | Time   | 0.00032401 s |   0.01375198 s | +0.01342797 s |
| From Start to End          | Memory |    0.0998 MB |      0.5286 MB |    +0.4288 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.4417 MB |    +0.4417 MB |
| Class Loading Time         | Memory |    0.0980 MB |      0.0835 MB |    -0.0145 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (50 aspects, 50 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00393391 s | 0.05155802 s | +0.04762411 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.03241205 s | +0.03241014 s |
| Class Loading Time         | Time   | 0.00359702 s | 0.00261903 s | -0.00097799 s |
| Execution Time             | Time   | 0.00032401 s | 0.01651597 s | +0.01619196 s |
| From Start to End          | Memory |    0.0998 MB |    0.4697 MB |    +0.3699 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3828 MB |    +0.3828 MB |
| Class Loading Time         | Memory |    0.0980 MB |    0.0835 MB |    -0.0145 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (50 aspects, 50 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.04739308 s | 0.05155802 s | +0.00416493 s |
| Boot Time - Kernel::init() | Time   |   0.03055286 s | 0.03241205 s | +0.00185919 s |
| Class Loading Time         | Time   |   0.00307703 s | 0.00261903 s | -0.00045800 s |
| Execution Time             | Time   |   0.01375198 s | 0.01651597 s | +0.00276399 s |
| From Start to End          | Memory |      0.5286 MB |    0.4697 MB |    -0.0590 MB |
| Boot Time - Kernel::init() | Memory |      0.4417 MB |    0.3828 MB |    -0.0589 MB |
| Class Loading Time         | Memory |      0.0835 MB |    0.0835 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

100 aspects, 100 executions
---------------------------

Table 1: Without Aspects vs With Aspects (100 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00806618 s | 0.28294301 s | +0.27487683 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.03671694 s | +0.03671575 s |
| Class Loading Time         | Time   | 0.00614405 s | 0.19602609 s | +0.18988204 s |
| Execution Time             | Time   | 0.00191116 s | 0.05018497 s | +0.04827380 s |
| From Start to End          | Memory |    0.1295 MB |    3.9907 MB |    +3.8612 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.6515 MB |    +0.6515 MB |
| Class Loading Time         | Memory |    0.1277 MB |    3.3358 MB |    +3.2081 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (100 aspects, 100 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00806618 s |   0.08802605 s | +0.07995987 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s |   0.03757715 s | +0.03757596 s |
| Class Loading Time         | Time   | 0.00614405 s |   0.00402093 s | -0.00212312 s |
| Execution Time             | Time   | 0.00191116 s |   0.04641485 s | +0.04450369 s |
| From Start to End          | Memory |    0.1295 MB |      0.7546 MB |    +0.6251 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.7102 MB |    +0.7102 MB |
| Class Loading Time         | Memory |    0.1277 MB |      0.0410 MB |    -0.0867 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (100 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00806618 s | 0.09682703 s | +0.08876085 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.04069710 s | +0.04069591 s |
| Class Loading Time         | Time   | 0.00614405 s | 0.00362396 s | -0.00252008 s |
| Execution Time             | Time   | 0.00191116 s | 0.05249596 s | +0.05058479 s |
| From Start to End          | Memory |    0.1295 MB |    0.6566 MB |    +0.5271 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.6122 MB |    +0.6122 MB |
| Class Loading Time         | Memory |    0.1277 MB |    0.0410 MB |    -0.0867 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (100 aspects, 100 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.08802605 s | 0.09682703 s | +0.00880098 s |
| Boot Time - Kernel::init() | Time   |   0.03757715 s | 0.04069710 s | +0.00311995 s |
| Class Loading Time         | Time   |   0.00402093 s | 0.00362396 s | -0.00039697 s |
| Execution Time             | Time   |   0.04641485 s | 0.05249596 s | +0.00608110 s |
| From Start to End          | Memory |      0.7546 MB |    0.6566 MB |    -0.0979 MB |
| Boot Time - Kernel::init() | Memory |      0.7102 MB |    0.6122 MB |    -0.0980 MB |
| Class Loading Time         | Memory |      0.0410 MB |    0.0410 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 100 executions
---------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02357101 s | 0.52546811 s | +0.50189710 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.06632090 s | +0.06631899 s |
| Class Loading Time         | Time   | 0.01790404 s | 0.23338103 s | +0.21547699 s |
| Execution Time             | Time   | 0.00565720 s | 0.22575307 s | +0.22009587 s |
| From Start to End          | Memory |    0.8303 MB |    6.7847 MB |    +5.9544 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.6620 MB |    +2.6620 MB |
| Class Loading Time         | Memory |    0.8285 MB |    4.0569 MB |    +3.2283 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 100 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.02357101 s |   0.31702614 s | +0.29345512 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.06562686 s | +0.06562495 s |
| Class Loading Time         | Time   | 0.01790404 s |   0.03074503 s | +0.01284099 s |
| Execution Time             | Time   | 0.00565720 s |   0.22064090 s | +0.21498370 s |
| From Start to End          | Memory |    0.8303 MB |      2.9780 MB |    +2.1476 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      2.8618 MB |    +2.8618 MB |
| Class Loading Time         | Memory |    0.8285 MB |      0.1128 MB |    -0.7158 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02357101 s | 0.37553406 s | +0.35196304 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.09378099 s | +0.09377909 s |
| Class Loading Time         | Time   | 0.01790404 s | 0.02988601 s | +0.01198196 s |
| Execution Time             | Time   | 0.00565720 s | 0.25185394 s | +0.24619675 s |
| From Start to End          | Memory |    0.8303 MB |    2.1258 MB |    +1.2955 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.0774 MB |    +2.0774 MB |
| Class Loading Time         | Memory |    0.8285 MB |    0.0450 MB |    -0.7835 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 100 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.31702614 s | 0.37553406 s | +0.05850792 s |
| Boot Time - Kernel::init() | Time   |   0.06562686 s | 0.09378099 s | +0.02815413 s |
| Class Loading Time         | Time   |   0.03074503 s | 0.02988601 s | -0.00085902 s |
| Execution Time             | Time   |   0.22064090 s | 0.25185394 s | +0.03121305 s |
| From Start to End          | Memory |      2.9780 MB |    2.1258 MB |    -0.8522 MB |
| Boot Time - Kernel::init() | Memory |      2.8618 MB |    2.0774 MB |    -0.7844 MB |
| Class Loading Time         | Memory |      0.1128 MB |    0.0450 MB |    -0.0677 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

100 aspects, 500 executions
---------------------------

Table 1: Without Aspects vs With Aspects (100 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.01607704 s | 0.45776105 s | +0.44168401 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.03916693 s | +0.03916502 s |
| Class Loading Time         | Time   | 0.00760102 s | 0.18958187 s | +0.18198085 s |
| Execution Time             | Time   | 0.00846386 s | 0.22899890 s | +0.22053504 s |
| From Start to End          | Memory |    0.0868 MB |    3.8916 MB |    +3.8048 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.5533 MB |    +0.5533 MB |
| Class Loading Time         | Memory |    0.0850 MB |    3.2724 MB |    +3.1874 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (100 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.01607704 s |   0.26540685 s | +0.24932981 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.04064512 s | +0.04064322 s |
| Class Loading Time         | Time   | 0.00760102 s |   0.00381804 s | -0.00378299 s |
| Execution Time             | Time   | 0.00846386 s |   0.22093296 s | +0.21246910 s |
| From Start to End          | Memory |    0.0868 MB |      0.6563 MB |    +0.5695 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.6120 MB |    +0.6120 MB |
| Class Loading Time         | Memory |    0.0850 MB |      0.0409 MB |    -0.0441 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (100 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.01607704 s | 0.27969098 s | +0.26361394 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.04087687 s | +0.04087496 s |
| Class Loading Time         | Time   | 0.00760102 s | 0.00364685 s | -0.00395417 s |
| Execution Time             | Time   | 0.00846386 s | 0.23515606 s | +0.22669220 s |
| From Start to End          | Memory |    0.0868 MB |    0.6370 MB |    +0.5502 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.6120 MB |    +0.6120 MB |
| Class Loading Time         | Memory |    0.0850 MB |    0.0216 MB |    -0.0634 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (100 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.26540685 s | 0.27969098 s | +0.01428413 s |
| Boot Time - Kernel::init() | Time   |   0.04064512 s | 0.04087687 s | +0.00023174 s |
| Class Loading Time         | Time   |   0.00381804 s | 0.00364685 s | -0.00017118 s |
| Execution Time             | Time   |   0.22093296 s | 0.23515606 s | +0.01422310 s |
| From Start to End          | Memory |      0.6563 MB |    0.6370 MB |    -0.0193 MB |
| Boot Time - Kernel::init() | Memory |      0.6120 MB |    0.6120 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0409 MB |    0.0216 MB |    -0.0193 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 500 executions
---------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.07593298 s | 1.56111789 s | +1.48518491 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.08981895 s | +0.08981800 s |
| Class Loading Time         | Time   | 0.03407216 s | 0.23163605 s | +0.19756389 s |
| Execution Time             | Time   | 0.04184604 s | 1.23964906 s | +1.19780302 s |
| From Start to End          | Memory |    0.4885 MB |    5.9369 MB |    +5.4484 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.8150 MB |    +1.8150 MB |
| Class Loading Time         | Memory |    0.4242 MB |    4.1185 MB |    +3.6943 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.07593298 s |   1.28672099 s | +1.21078801 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.09082103 s | +0.09082007 s |
| Class Loading Time         | Time   | 0.03407216 s |   0.03153706 s | -0.00253510 s |
| Execution Time             | Time   | 0.04184604 s |   1.16435003 s | +1.12250400 s |
| From Start to End          | Memory |    0.4885 MB |      2.1934 MB |    +1.7049 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      2.0773 MB |    +2.0773 MB |
| Class Loading Time         | Memory |    0.4242 MB |      0.1127 MB |    -0.3115 MB |
| Execution Time             | Memory |    0.0625 MB |      0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.07593298 s | 1.29194498 s | +1.21601200 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.09206605 s | +0.09206510 s |
| Class Loading Time         | Time   | 0.03407216 s | 0.02983284 s | -0.00423932 s |
| Execution Time             | Time   | 0.04184604 s | 1.17003393 s | +1.12818789 s |
| From Start to End          | Memory |    0.4885 MB |    2.1258 MB |    +1.6373 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.0774 MB |    +2.0774 MB |
| Class Loading Time         | Memory |    0.4242 MB |    0.0450 MB |    -0.3792 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   1.28672099 s | 1.29194498 s | +0.00522399 s |
| Boot Time - Kernel::init() | Time   |   0.09082103 s | 0.09206605 s | +0.00124502 s |
| Class Loading Time         | Time   |   0.03153706 s | 0.02983284 s | -0.00170422 s |
| Execution Time             | Time   |   1.16435003 s | 1.17003393 s | +0.00568390 s |
| From Start to End          | Memory |      2.1934 MB |    2.1258 MB |    -0.0676 MB |
| Boot Time - Kernel::init() | Memory |      2.0773 MB |    2.0774 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.1127 MB |    0.0450 MB |    -0.0677 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

1000 aspects, 500 executions
----------------------------

Table 1: Without Aspects vs With Aspects (1000 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.10814095 s | 2.74170089 s | +2.63355994 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.12404895 s | +0.12404799 s |
| Class Loading Time         | Time   | 0.04906607 s | 0.33785701 s | +0.28879094 s |
| Execution Time             | Time   | 0.05905986 s | 2.27977800 s | +2.22071815 s |
| From Start to End          | Memory |    1.4258 MB |    8.3922 MB |    +6.9664 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    4.5270 MB |    +4.5270 MB |
| Class Loading Time         | Memory |    1.4240 MB |    3.7993 MB |    +2.3753 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.10814095 s |   2.66278481 s | +2.55464387 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.15529585 s | +0.15529490 s |
| Class Loading Time         | Time   | 0.04906607 s |   0.11410403 s | +0.06503797 s |
| Execution Time             | Time   | 0.05905986 s |   2.39337111 s | +2.33431125 s |
| From Start to End          | Memory |    1.4258 MB |      4.7810 MB |    +3.3553 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    1.4240 MB |      0.0762 MB |    -1.3477 MB |
| Execution Time             | Memory |    0.0000 MB |      0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1000 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.10814095 s | 2.72262502 s | +2.61448407 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.15507984 s | +0.15507889 s |
| Class Loading Time         | Time   | 0.04906607 s | 0.11162806 s | +0.06256199 s |
| Execution Time             | Time   | 0.05905986 s | 2.45590305 s | +2.39684319 s |
| From Start to End          | Memory |    1.4258 MB |    4.7811 MB |    +3.3554 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    1.4240 MB |    0.0763 MB |    -1.3477 MB |
| Execution Time             | Memory |    0.0000 MB |    0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1000 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   2.66278481 s | 2.72262502 s | +0.05984020 s |
| Boot Time - Kernel::init() | Time   |   0.15529585 s | 0.15507984 s | -0.00021601 s |
| Class Loading Time         | Time   |   0.11410403 s | 0.11162806 s | -0.00247598 s |
| Execution Time             | Time   |   2.39337111 s | 2.45590305 s | +0.06253195 s |
| From Start to End          | Memory |      4.7810 MB |    4.7811 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      3.8680 MB |    3.8680 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0762 MB |    0.0763 MB |     0.0000 MB |
| Execution Time             | Memory |      0.8350 MB |    0.8350 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 1000 executions
----------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.09301496 s | 2.59041309 s | +2.49739814 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.09037113 s | +0.09037018 s |
| Class Loading Time         | Time   | 0.03396606 s | 0.23532295 s | +0.20135689 s |
| Execution Time             | Time   | 0.05903578 s | 2.26470399 s | +2.20566821 s |
| From Start to End          | Memory |    0.4885 MB |    5.9369 MB |    +5.4484 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.8150 MB |    +1.8150 MB |
| Class Loading Time         | Memory |    0.4242 MB |    4.1185 MB |    +3.6943 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 1000 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.09301496 s |   2.50489283 s | +2.41187787 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.09261417 s | +0.09261322 s |
| Class Loading Time         | Time   | 0.03396606 s |   0.03134394 s | -0.00262213 s |
| Execution Time             | Time   | 0.05903578 s |   2.38092303 s | +2.32188725 s |
| From Start to End          | Memory |    0.4885 MB |      2.1257 MB |    +1.6372 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      2.0773 MB |    +2.0773 MB |
| Class Loading Time         | Memory |    0.4242 MB |      0.0450 MB |    -0.3793 MB |
| Execution Time             | Memory |    0.0625 MB |      0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.09301496 s | 2.43002510 s | +2.33701015 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.09256697 s | +0.09256601 s |
| Class Loading Time         | Time   | 0.03396606 s | 0.03009987 s | -0.00386620 s |
| Execution Time             | Time   | 0.05903578 s | 2.30734396 s | +2.24830818 s |
| From Start to End          | Memory |    0.4885 MB |    2.1258 MB |    +1.6373 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.0774 MB |    +2.0774 MB |
| Class Loading Time         | Memory |    0.4242 MB |    0.0450 MB |    -0.3792 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 1000 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   2.50489283 s | 2.43002510 s | -0.07486773 s |
| Boot Time - Kernel::init() | Time   |   0.09261417 s | 0.09256697 s | -0.00004721 s |
| Class Loading Time         | Time   |   0.03134394 s | 0.03009987 s | -0.00124407 s |
| Execution Time             | Time   |   2.38092303 s | 2.30734396 s | -0.07357907 s |
| From Start to End          | Memory |      2.1257 MB |    2.1258 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      2.0773 MB |    2.0774 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0450 MB |    0.0450 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

1000 aspects, 1000 executions
-----------------------------

Table 1: Without Aspects vs With Aspects (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.18713284 s | 5.05557895 s | +4.86844611 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.15338683 s | +0.15338588 s |
| Class Loading Time         | Time   | 0.06686091 s | 0.34421706 s | +0.27735615 s |
| Execution Time             | Time   | 0.12025595 s | 4.55796003 s | +4.43770409 s |
| From Start to End          | Memory |    0.9360 MB |    7.3483 MB |    +6.4123 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.4839 MB |    +3.4839 MB |
| Class Loading Time         | Memory |    0.9342 MB |    3.7984 MB |    +2.8642 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.18713284 s |   4.81648207 s | +4.62934923 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.15767884 s | +0.15767789 s |
| Class Loading Time         | Time   | 0.06686091 s |   0.11323094 s | +0.04637003 s |
| Execution Time             | Time   | 0.12025595 s |   4.54555702 s | +4.42530107 s |
| From Start to End          | Memory |    0.9360 MB |      4.7810 MB |    +3.8450 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    0.9342 MB |      0.0762 MB |    -0.8580 MB |
| Execution Time             | Memory |    0.0000 MB |      0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.18713284 s | 4.79292107 s | +4.60578823 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.15870404 s | +0.15870309 s |
| Class Loading Time         | Time   | 0.06686091 s | 0.11191487 s | +0.04505396 s |
| Execution Time             | Time   | 0.12025595 s | 4.52228880 s | +4.40203285 s |
| From Start to End          | Memory |    0.9360 MB |    4.7811 MB |    +3.8451 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    0.9342 MB |    0.0763 MB |    -0.8579 MB |
| Execution Time             | Memory |    0.0000 MB |    0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1000 aspects, 1000 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   4.81648207 s | 4.79292107 s | -0.02356100 s |
| Boot Time - Kernel::init() | Time   |   0.15767884 s | 0.15870404 s | +0.00102520 s |
| Class Loading Time         | Time   |   0.11323094 s | 0.11191487 s | -0.00131607 s |
| Execution Time             | Time   |   4.54555702 s | 4.52228880 s | -0.02326822 s |
| From Start to End          | Memory |      4.7810 MB |    4.7811 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      3.8680 MB |    3.8680 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0762 MB |    0.0763 MB |     0.0000 MB |
| Execution Time             | Memory |      0.8350 MB |    0.8350 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

.                     45 / 45 (100%)

Time: 02:34.308, Memory: 6.00 MB

OK (45 tests, 45 assertions)

@WalterWoshid
Copy link
Contributor Author

WalterWoshid commented Sep 17, 2023

GitHub Workflow (PHP 8.2 - Okapi/AOP 1.2.7):
  • Ubuntu (latest)
  • 2-core CPU (x86_64)
  • 7 GB of RAM
  • 14 GB of SSD space
Run vendor/bin/phpunit --testsuite=Performance --display-notices
PHPUnit 10.4.2 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.1.25
Configuration: /home/runner/work/php-aop/php-aop/phpunit.xml

....

1 aspect, 1 execution
---------------------

Table 1: Without Aspects vs With Aspects (1 aspect, 1 execution)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00031900 s | 0.20448399 s | +0.20416498 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02142191 s | +0.02141976 s |
| Class Loading Time         | Time   | 0.00030088 s | 0.18203807 s | +0.18173718 s |
| Execution Time             | Time   | 0.00000596 s | 0.00101209 s | +0.00100613 s |
| From Start to End          | Memory |    0.0033 MB |    2.3027 MB |    +2.2993 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2402 MB |    +0.2402 MB |
| Class Loading Time         | Memory |    0.0015 MB |    2.0591 MB |    +2.0576 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1 aspect, 1 execution)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00031900 s |   0.02594209 s | +0.02562308 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s |   0.02293205 s | +0.02292991 s |
| Class Loading Time         | Time   | 0.00030088 s |   0.00186491 s | +0.00156403 s |
| Execution Time             | Time   | 0.00000596 s |   0.00113392 s | +0.00112796 s |
| From Start to End          | Memory |    0.0033 MB |      0.2604 MB |    +0.2571 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.2453 MB |    +0.2453 MB |
| Class Loading Time         | Memory |    0.0015 MB |      0.0118 MB |    +0.0102 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1 aspect, 1 execution)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00031900 s | 0.02589011 s | +0.02557111 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02251196 s | +0.02250981 s |
| Class Loading Time         | Time   | 0.00030088 s | 0.00181103 s | +0.00151014 s |
| Execution Time             | Time   | 0.00000596 s | 0.00155520 s | +0.00154924 s |
| From Start to End          | Memory |    0.0033 MB |    0.2581 MB |    +0.2548 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2430 MB |    +0.2430 MB |
| Class Loading Time         | Memory |    0.0015 MB |    0.0117 MB |    +0.0102 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1 aspect, 1 execution)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.02594209 s | 0.02589011 s | -0.00005198 s |
| Boot Time - Kernel::init() | Time   |   0.02293205 s | 0.02251196 s | -0.00042009 s |
| Class Loading Time         | Time   |   0.00186491 s | 0.00181103 s | -0.00005388 s |
| Execution Time             | Time   |   0.00113392 s | 0.00155520 s | +0.00042129 s |
| From Start to End          | Memory |      0.2604 MB |    0.2581 MB |    -0.0023 MB |
| Boot Time - Kernel::init() | Memory |      0.2453 MB |    0.2430 MB |    -0.0023 MB |
| Class Loading Time         | Memory |      0.0118 MB |    0.0117 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

5 aspects, 5 executions
-----------------------

Table 1: Without Aspects vs With Aspects (5 aspects, 5 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00048780 s | 0.21203184 s | +0.21154404 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.02189088 s | +0.02188897 s |
| Class Loading Time         | Time   | 0.00046611 s | 0.18841100 s | +0.18794489 s |
| Execution Time             | Time   | 0.00001001 s | 0.00171804 s | +0.00170803 s |
| From Start to End          | Memory |    0.0064 MB |    2.3229 MB |    +2.3165 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2545 MB |    +0.2545 MB |
| Class Loading Time         | Memory |    0.0046 MB |    2.0650 MB |    +2.0603 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (5 aspects, 5 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00048780 s |   0.02748084 s | +0.02699304 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.02375293 s | +0.02375102 s |
| Class Loading Time         | Time   | 0.00046611 s |   0.00197601 s | +0.00150990 s |
| Execution Time             | Time   | 0.00001001 s |   0.00173903 s | +0.00172901 s |
| From Start to End          | Memory |    0.0064 MB |      0.2766 MB |    +0.2701 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.2620 MB |    +0.2620 MB |
| Class Loading Time         | Memory |    0.0046 MB |      0.0112 MB |    +0.0066 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (5 aspects, 5 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00048780 s | 0.02738500 s | +0.02689719 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.02391100 s | +0.02390909 s |
| Class Loading Time         | Time   | 0.00046611 s | 0.00200200 s | +0.00153589 s |
| Execution Time             | Time   | 0.00001001 s | 0.00145912 s | +0.00144911 s |
| From Start to End          | Memory |    0.0064 MB |    0.2688 MB |    +0.2624 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2542 MB |    +0.2542 MB |
| Class Loading Time         | Memory |    0.0046 MB |    0.0112 MB |    +0.0066 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (5 aspects, 5 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.02748084 s | 0.02738500 s | -0.00009584 s |
| Boot Time - Kernel::init() | Time   |   0.02375293 s | 0.02391100 s | +0.00015807 s |
| Class Loading Time         | Time   |   0.00197601 s | 0.00200200 s | +0.00002599 s |
| Execution Time             | Time   |   0.00173903 s | 0.00145912 s | -0.00027990 s |
| From Start to End          | Memory |      0.2766 MB |    0.2688 MB |    -0.0078 MB |
| Boot Time - Kernel::init() | Memory |      0.2620 MB |    0.2542 MB |    -0.0078 MB |
| Class Loading Time         | Memory |      0.0112 MB |    0.0112 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

20 aspects, 20 executions
-------------------------

Table 1: Without Aspects vs With Aspects (20 aspects, 20 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00227714 s | 0.21849704 s | +0.21621990 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02540517 s | +0.02540302 s |
| Class Loading Time         | Time   | 0.00166488 s | 0.18787408 s | +0.18620920 s |
| Execution Time             | Time   | 0.00060081 s | 0.00520611 s | +0.00460529 s |
| From Start to End          | Memory |    0.0189 MB |    2.4761 MB |    +2.4572 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3128 MB |    +0.3128 MB |
| Class Loading Time         | Memory |    0.0171 MB |    2.1599 MB |    +2.1428 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (20 aspects, 20 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00227714 s |   0.03325415 s | +0.03097701 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s |   0.02547193 s | +0.02546978 s |
| Class Loading Time         | Time   | 0.00166488 s |   0.00271201 s | +0.00104713 s |
| Execution Time             | Time   | 0.00060081 s |   0.00505805 s | +0.00445724 s |
| From Start to End          | Memory |    0.0189 MB |      0.4069 MB |    +0.3880 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.3259 MB |    +0.3259 MB |
| Class Loading Time         | Memory |    0.0171 MB |      0.0151 MB |    -0.0020 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (20 aspects, 20 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00227714 s | 0.03462315 s | +0.03234601 s |
| Boot Time - Kernel::init() | Time   | 0.00000215 s | 0.02663493 s | +0.02663279 s |
| Class Loading Time         | Time   | 0.00166488 s | 0.00272703 s | +0.00106215 s |
| Execution Time             | Time   | 0.00060081 s | 0.00524807 s | +0.00464725 s |
| From Start to End          | Memory |    0.0189 MB |    0.3148 MB |    +0.2959 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2964 MB |    +0.2964 MB |
| Class Loading Time         | Memory |    0.0171 MB |    0.0151 MB |    -0.0021 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (20 aspects, 20 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.03325415 s | 0.03462315 s | +0.00136900 s |
| Boot Time - Kernel::init() | Time   |   0.02547193 s | 0.02663493 s | +0.00116301 s |
| Class Loading Time         | Time   |   0.00271201 s | 0.00272703 s | +0.00001502 s |
| Execution Time             | Time   |   0.00505805 s | 0.00524807 s | +0.00019002 s |
| From Start to End          | Memory |      0.4069 MB |    0.3148 MB |    -0.0921 MB |
| Boot Time - Kernel::init() | Memory |      0.3259 MB |    0.2964 MB |    -0.0295 MB |
| Class Loading Time         | Memory |      0.0151 MB |    0.0151 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0641 MB |    0.0016 MB |    -0.0625 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

50 aspects, 50 executions
-------------------------

Table 1: Without Aspects vs With Aspects (50 aspects, 50 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00393391 s | 0.23452997 s | +0.23059607 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.03014493 s | +0.03014302 s |
| Class Loading Time         | Time   | 0.00359702 s | 0.18971395 s | +0.18611693 s |
| Execution Time             | Time   | 0.00032401 s | 0.01465797 s | +0.01433396 s |
| From Start to End          | Memory |    0.0998 MB |    2.6275 MB |    +2.5277 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.4792 MB |    +0.4792 MB |
| Class Loading Time         | Memory |    0.0980 MB |    2.1449 MB |    +2.0469 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (50 aspects, 50 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00393391 s |   0.04739308 s | +0.04345918 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.03055286 s | +0.03055096 s |
| Class Loading Time         | Time   | 0.00359702 s |   0.00307703 s | -0.00051999 s |
| Execution Time             | Time   | 0.00032401 s |   0.01375198 s | +0.01342797 s |
| From Start to End          | Memory |    0.0998 MB |      0.5286 MB |    +0.4288 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.4417 MB |    +0.4417 MB |
| Class Loading Time         | Memory |    0.0980 MB |      0.0835 MB |    -0.0145 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (50 aspects, 50 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00393391 s | 0.05155802 s | +0.04762411 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.03241205 s | +0.03241014 s |
| Class Loading Time         | Time   | 0.00359702 s | 0.00261903 s | -0.00097799 s |
| Execution Time             | Time   | 0.00032401 s | 0.01651597 s | +0.01619196 s |
| From Start to End          | Memory |    0.0998 MB |    0.4697 MB |    +0.3699 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3828 MB |    +0.3828 MB |
| Class Loading Time         | Memory |    0.0980 MB |    0.0835 MB |    -0.0145 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (50 aspects, 50 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.04739308 s | 0.05155802 s | +0.00416493 s |
| Boot Time - Kernel::init() | Time   |   0.03055286 s | 0.03241205 s | +0.00185919 s |
| Class Loading Time         | Time   |   0.00307703 s | 0.00261903 s | -0.00045800 s |
| Execution Time             | Time   |   0.01375198 s | 0.01651597 s | +0.00276399 s |
| From Start to End          | Memory |      0.5286 MB |    0.4697 MB |    -0.0590 MB |
| Boot Time - Kernel::init() | Memory |      0.4417 MB |    0.3828 MB |    -0.0589 MB |
| Class Loading Time         | Memory |      0.0835 MB |    0.0835 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

100 aspects, 100 executions
---------------------------

Table 1: Without Aspects vs With Aspects (100 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00806618 s | 0.28294301 s | +0.27487683 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.03671694 s | +0.03671575 s |
| Class Loading Time         | Time   | 0.00614405 s | 0.19602609 s | +0.18988204 s |
| Execution Time             | Time   | 0.00191116 s | 0.05018497 s | +0.04827380 s |
| From Start to End          | Memory |    0.1295 MB |    3.9907 MB |    +3.8612 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.6515 MB |    +0.6515 MB |
| Class Loading Time         | Memory |    0.1277 MB |    3.3358 MB |    +3.2081 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (100 aspects, 100 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00806618 s |   0.08802605 s | +0.07995987 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s |   0.03757715 s | +0.03757596 s |
| Class Loading Time         | Time   | 0.00614405 s |   0.00402093 s | -0.00212312 s |
| Execution Time             | Time   | 0.00191116 s |   0.04641485 s | +0.04450369 s |
| From Start to End          | Memory |    0.1295 MB |      0.7546 MB |    +0.6251 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.7102 MB |    +0.7102 MB |
| Class Loading Time         | Memory |    0.1277 MB |      0.0410 MB |    -0.0867 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (100 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00806618 s | 0.09682703 s | +0.08876085 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.04069710 s | +0.04069591 s |
| Class Loading Time         | Time   | 0.00614405 s | 0.00362396 s | -0.00252008 s |
| Execution Time             | Time   | 0.00191116 s | 0.05249596 s | +0.05058479 s |
| From Start to End          | Memory |    0.1295 MB |    0.6566 MB |    +0.5271 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.6122 MB |    +0.6122 MB |
| Class Loading Time         | Memory |    0.1277 MB |    0.0410 MB |    -0.0867 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (100 aspects, 100 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.08802605 s | 0.09682703 s | +0.00880098 s |
| Boot Time - Kernel::init() | Time   |   0.03757715 s | 0.04069710 s | +0.00311995 s |
| Class Loading Time         | Time   |   0.00402093 s | 0.00362396 s | -0.00039697 s |
| Execution Time             | Time   |   0.04641485 s | 0.05249596 s | +0.00608110 s |
| From Start to End          | Memory |      0.7546 MB |    0.6566 MB |    -0.0979 MB |
| Boot Time - Kernel::init() | Memory |      0.7102 MB |    0.6122 MB |    -0.0980 MB |
| Class Loading Time         | Memory |      0.0410 MB |    0.0410 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 100 executions
---------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02357101 s | 0.52546811 s | +0.50189710 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.06632090 s | +0.06631899 s |
| Class Loading Time         | Time   | 0.01790404 s | 0.23338103 s | +0.21547699 s |
| Execution Time             | Time   | 0.00565720 s | 0.22575307 s | +0.22009587 s |
| From Start to End          | Memory |    0.8303 MB |    6.7847 MB |    +5.9544 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.6620 MB |    +2.6620 MB |
| Class Loading Time         | Memory |    0.8285 MB |    4.0569 MB |    +3.2283 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 100 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.02357101 s |   0.31702614 s | +0.29345512 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.06562686 s | +0.06562495 s |
| Class Loading Time         | Time   | 0.01790404 s |   0.03074503 s | +0.01284099 s |
| Execution Time             | Time   | 0.00565720 s |   0.22064090 s | +0.21498370 s |
| From Start to End          | Memory |    0.8303 MB |      2.9780 MB |    +2.1476 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      2.8618 MB |    +2.8618 MB |
| Class Loading Time         | Memory |    0.8285 MB |      0.1128 MB |    -0.7158 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02357101 s | 0.37553406 s | +0.35196304 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.09378099 s | +0.09377909 s |
| Class Loading Time         | Time   | 0.01790404 s | 0.02988601 s | +0.01198196 s |
| Execution Time             | Time   | 0.00565720 s | 0.25185394 s | +0.24619675 s |
| From Start to End          | Memory |    0.8303 MB |    2.1258 MB |    +1.2955 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.0774 MB |    +2.0774 MB |
| Class Loading Time         | Memory |    0.8285 MB |    0.0450 MB |    -0.7835 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 100 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.31702614 s | 0.37553406 s | +0.05850792 s |
| Boot Time - Kernel::init() | Time   |   0.06562686 s | 0.09378099 s | +0.02815413 s |
| Class Loading Time         | Time   |   0.03074503 s | 0.02988601 s | -0.00085902 s |
| Execution Time             | Time   |   0.22064090 s | 0.25185394 s | +0.03121305 s |
| From Start to End          | Memory |      2.9780 MB |    2.1258 MB |    -0.8522 MB |
| Boot Time - Kernel::init() | Memory |      2.8618 MB |    2.0774 MB |    -0.7844 MB |
| Class Loading Time         | Memory |      0.1128 MB |    0.0450 MB |    -0.0677 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

100 aspects, 500 executions
---------------------------

Table 1: Without Aspects vs With Aspects (100 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.01607704 s | 0.45776105 s | +0.44168401 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.03916693 s | +0.03916502 s |
| Class Loading Time         | Time   | 0.00760102 s | 0.18958187 s | +0.18198085 s |
| Execution Time             | Time   | 0.00846386 s | 0.22899890 s | +0.22053504 s |
| From Start to End          | Memory |    0.0868 MB |    3.8916 MB |    +3.8048 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.5533 MB |    +0.5533 MB |
| Class Loading Time         | Memory |    0.0850 MB |    3.2724 MB |    +3.1874 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (100 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.01607704 s |   0.26540685 s | +0.24932981 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s |   0.04064512 s | +0.04064322 s |
| Class Loading Time         | Time   | 0.00760102 s |   0.00381804 s | -0.00378299 s |
| Execution Time             | Time   | 0.00846386 s |   0.22093296 s | +0.21246910 s |
| From Start to End          | Memory |    0.0868 MB |      0.6563 MB |    +0.5695 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.6120 MB |    +0.6120 MB |
| Class Loading Time         | Memory |    0.0850 MB |      0.0409 MB |    -0.0441 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (100 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.01607704 s | 0.27969098 s | +0.26361394 s |
| Boot Time - Kernel::init() | Time   | 0.00000191 s | 0.04087687 s | +0.04087496 s |
| Class Loading Time         | Time   | 0.00760102 s | 0.00364685 s | -0.00395417 s |
| Execution Time             | Time   | 0.00846386 s | 0.23515606 s | +0.22669220 s |
| From Start to End          | Memory |    0.0868 MB |    0.6370 MB |    +0.5502 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.6120 MB |    +0.6120 MB |
| Class Loading Time         | Memory |    0.0850 MB |    0.0216 MB |    -0.0634 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0016 MB |    +0.0016 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (100 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.26540685 s | 0.27969098 s | +0.01428413 s |
| Boot Time - Kernel::init() | Time   |   0.04064512 s | 0.04087687 s | +0.00023174 s |
| Class Loading Time         | Time   |   0.00381804 s | 0.00364685 s | -0.00017118 s |
| Execution Time             | Time   |   0.22093296 s | 0.23515606 s | +0.01422310 s |
| From Start to End          | Memory |      0.6563 MB |    0.6370 MB |    -0.0193 MB |
| Boot Time - Kernel::init() | Memory |      0.6120 MB |    0.6120 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0409 MB |    0.0216 MB |    -0.0193 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 500 executions
---------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.07593298 s | 1.56111789 s | +1.48518491 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.08981895 s | +0.08981800 s |
| Class Loading Time         | Time   | 0.03407216 s | 0.23163605 s | +0.19756389 s |
| Execution Time             | Time   | 0.04184604 s | 1.23964906 s | +1.19780302 s |
| From Start to End          | Memory |    0.4885 MB |    5.9369 MB |    +5.4484 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.8150 MB |    +1.8150 MB |
| Class Loading Time         | Memory |    0.4242 MB |    4.1185 MB |    +3.6943 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.07593298 s |   1.28672099 s | +1.21078801 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.09082103 s | +0.09082007 s |
| Class Loading Time         | Time   | 0.03407216 s |   0.03153706 s | -0.00253510 s |
| Execution Time             | Time   | 0.04184604 s |   1.16435003 s | +1.12250400 s |
| From Start to End          | Memory |    0.4885 MB |      2.1934 MB |    +1.7049 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      2.0773 MB |    +2.0773 MB |
| Class Loading Time         | Memory |    0.4242 MB |      0.1127 MB |    -0.3115 MB |
| Execution Time             | Memory |    0.0625 MB |      0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.07593298 s | 1.29194498 s | +1.21601200 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.09206605 s | +0.09206510 s |
| Class Loading Time         | Time   | 0.03407216 s | 0.02983284 s | -0.00423932 s |
| Execution Time             | Time   | 0.04184604 s | 1.17003393 s | +1.12818789 s |
| From Start to End          | Memory |    0.4885 MB |    2.1258 MB |    +1.6373 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.0774 MB |    +2.0774 MB |
| Class Loading Time         | Memory |    0.4242 MB |    0.0450 MB |    -0.3792 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   1.28672099 s | 1.29194498 s | +0.00522399 s |
| Boot Time - Kernel::init() | Time   |   0.09082103 s | 0.09206605 s | +0.00124502 s |
| Class Loading Time         | Time   |   0.03153706 s | 0.02983284 s | -0.00170422 s |
| Execution Time             | Time   |   1.16435003 s | 1.17003393 s | +0.00568390 s |
| From Start to End          | Memory |      2.1934 MB |    2.1258 MB |    -0.0676 MB |
| Boot Time - Kernel::init() | Memory |      2.0773 MB |    2.0774 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.1127 MB |    0.0450 MB |    -0.0677 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

1000 aspects, 500 executions
----------------------------

Table 1: Without Aspects vs With Aspects (1000 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.10814095 s | 2.74170089 s | +2.63355994 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.12404895 s | +0.12404799 s |
| Class Loading Time         | Time   | 0.04906607 s | 0.33785701 s | +0.28879094 s |
| Execution Time             | Time   | 0.05905986 s | 2.27977800 s | +2.22071815 s |
| From Start to End          | Memory |    1.4258 MB |    8.3922 MB |    +6.9664 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    4.5270 MB |    +4.5270 MB |
| Class Loading Time         | Memory |    1.4240 MB |    3.7993 MB |    +2.3753 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.10814095 s |   2.66278481 s | +2.55464387 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.15529585 s | +0.15529490 s |
| Class Loading Time         | Time   | 0.04906607 s |   0.11410403 s | +0.06503797 s |
| Execution Time             | Time   | 0.05905986 s |   2.39337111 s | +2.33431125 s |
| From Start to End          | Memory |    1.4258 MB |      4.7810 MB |    +3.3553 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    1.4240 MB |      0.0762 MB |    -1.3477 MB |
| Execution Time             | Memory |    0.0000 MB |      0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1000 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.10814095 s | 2.72262502 s | +2.61448407 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.15507984 s | +0.15507889 s |
| Class Loading Time         | Time   | 0.04906607 s | 0.11162806 s | +0.06256199 s |
| Execution Time             | Time   | 0.05905986 s | 2.45590305 s | +2.39684319 s |
| From Start to End          | Memory |    1.4258 MB |    4.7811 MB |    +3.3554 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    1.4240 MB |    0.0763 MB |    -1.3477 MB |
| Execution Time             | Memory |    0.0000 MB |    0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1000 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   2.66278481 s | 2.72262502 s | +0.05984020 s |
| Boot Time - Kernel::init() | Time   |   0.15529585 s | 0.15507984 s | -0.00021601 s |
| Class Loading Time         | Time   |   0.11410403 s | 0.11162806 s | -0.00247598 s |
| Execution Time             | Time   |   2.39337111 s | 2.45590305 s | +0.06253195 s |
| From Start to End          | Memory |      4.7810 MB |    4.7811 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      3.8680 MB |    3.8680 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0762 MB |    0.0763 MB |     0.0000 MB |
| Execution Time             | Memory |      0.8350 MB |    0.8350 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 1000 executions
----------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.09301496 s | 2.59041309 s | +2.49739814 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.09037113 s | +0.09037018 s |
| Class Loading Time         | Time   | 0.03396606 s | 0.23532295 s | +0.20135689 s |
| Execution Time             | Time   | 0.05903578 s | 2.26470399 s | +2.20566821 s |
| From Start to End          | Memory |    0.4885 MB |    5.9369 MB |    +5.4484 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.8150 MB |    +1.8150 MB |
| Class Loading Time         | Memory |    0.4242 MB |    4.1185 MB |    +3.6943 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 1000 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.09301496 s |   2.50489283 s | +2.41187787 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.09261417 s | +0.09261322 s |
| Class Loading Time         | Time   | 0.03396606 s |   0.03134394 s | -0.00262213 s |
| Execution Time             | Time   | 0.05903578 s |   2.38092303 s | +2.32188725 s |
| From Start to End          | Memory |    0.4885 MB |      2.1257 MB |    +1.6372 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      2.0773 MB |    +2.0773 MB |
| Class Loading Time         | Memory |    0.4242 MB |      0.0450 MB |    -0.3793 MB |
| Execution Time             | Memory |    0.0625 MB |      0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.09301496 s | 2.43002510 s | +2.33701015 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.09256697 s | +0.09256601 s |
| Class Loading Time         | Time   | 0.03396606 s | 0.03009987 s | -0.00386620 s |
| Execution Time             | Time   | 0.05903578 s | 2.30734396 s | +2.24830818 s |
| From Start to End          | Memory |    0.4885 MB |    2.1258 MB |    +1.6373 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.0774 MB |    +2.0774 MB |
| Class Loading Time         | Memory |    0.4242 MB |    0.0450 MB |    -0.3792 MB |
| Execution Time             | Memory |    0.0625 MB |    0.0016 MB |    -0.0609 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 1000 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   2.50489283 s | 2.43002510 s | -0.07486773 s |
| Boot Time - Kernel::init() | Time   |   0.09261417 s | 0.09256697 s | -0.00004721 s |
| Class Loading Time         | Time   |   0.03134394 s | 0.03009987 s | -0.00124407 s |
| Execution Time             | Time   |   2.38092303 s | 2.30734396 s | -0.07357907 s |
| From Start to End          | Memory |      2.1257 MB |    2.1258 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      2.0773 MB |    2.0774 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0450 MB |    0.0450 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0016 MB |    0.0016 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

1000 aspects, 1000 executions
-----------------------------

Table 1: Without Aspects vs With Aspects (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.18713284 s | 5.05557895 s | +4.86844611 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.15338683 s | +0.15338588 s |
| Class Loading Time         | Time   | 0.06686091 s | 0.34421706 s | +0.27735615 s |
| Execution Time             | Time   | 0.12025595 s | 4.55796003 s | +4.43770409 s |
| From Start to End          | Memory |    0.9360 MB |    7.3483 MB |    +6.4123 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.4839 MB |    +3.4839 MB |
| Class Loading Time         | Memory |    0.9342 MB |    3.7984 MB |    +2.8642 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0641 MB |    +0.0641 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.18713284 s |   4.81648207 s | +4.62934923 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.15767884 s | +0.15767789 s |
| Class Loading Time         | Time   | 0.06686091 s |   0.11323094 s | +0.04637003 s |
| Execution Time             | Time   | 0.12025595 s |   4.54555702 s | +4.42530107 s |
| From Start to End          | Memory |    0.9360 MB |      4.7810 MB |    +3.8450 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    0.9342 MB |      0.0762 MB |    -0.8580 MB |
| Execution Time             | Memory |    0.0000 MB |      0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.18713284 s | 4.79292107 s | +4.60578823 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.15870404 s | +0.15870309 s |
| Class Loading Time         | Time   | 0.06686091 s | 0.11191487 s | +0.04505396 s |
| Execution Time             | Time   | 0.12025595 s | 4.52228880 s | +4.40203285 s |
| From Start to End          | Memory |    0.9360 MB |    4.7811 MB |    +3.8451 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.8680 MB |    +3.8680 MB |
| Class Loading Time         | Memory |    0.9342 MB |    0.0763 MB |    -0.8579 MB |
| Execution Time             | Memory |    0.0000 MB |    0.8350 MB |    +0.8350 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1000 aspects, 1000 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   4.81648207 s | 4.79292107 s | -0.02356100 s |
| Boot Time - Kernel::init() | Time   |   0.15767884 s | 0.15870404 s | +0.00102520 s |
| Class Loading Time         | Time   |   0.11323094 s | 0.11191487 s | -0.00131607 s |
| Execution Time             | Time   |   4.54555702 s | 4.52228880 s | -0.02326822 s |
| From Start to End          | Memory |      4.7810 MB |    4.7811 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      3.8680 MB |    3.8680 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0762 MB |    0.0763 MB |     0.0000 MB |
| Execution Time             | Memory |      0.8350 MB |    0.8350 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

.                     45 / 45 (100%)

Time: 02:34.308, Memory: 6.00 MB

OK (45 tests, 45 assertions)

@WalterWoshid
Copy link
Contributor Author

WalterWoshid commented Sep 17, 2023

Arch Linux (PHP 8.2.9 - Okapi/AOP 1.2.7):
  • Lenovo Legion Pro 5 16IRX8
  • Kernel Version 6.4.8-arch1-1 (64-bit)
  • 24 × 13th Gen Intel® Core™ i7-13700HX
  • NVIDIA GeForce RTX 4050 Laptop
  • 32 GB of RAM
  • SSD
PHPUnit 10.3.5 by Sebastian Bergmann and contributors.

Runtime:       PHP 8.2.12
Configuration: /home/ws-38/Projects/private/okapi/php-aop/phpunit.xml

....

1 aspect, 1 execution
---------------------

Table 1: Without Aspects vs With Aspects (1 aspect, 1 execution)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00008988 s | 0.06361294 s | +0.06352305 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00611687 s | +0.00611591 s |
| Class Loading Time         | Time   | 0.00008297 s | 0.05717802 s | +0.05709505 s |
| Execution Time             | Time   | 0.00000286 s | 0.00031400 s | +0.00031114 s |
| From Start to End          | Memory |    0.0031 MB |    3.2916 MB |    +3.2885 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3008 MB |    +0.3008 MB |
| Class Loading Time         | Memory |    0.0013 MB |    2.9873 MB |    +2.9860 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1 aspect, 1 execution)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00008988 s |   0.00726295 s | +0.00717306 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.00640011 s | +0.00639915 s |
| Class Loading Time         | Time   | 0.00008297 s |   0.00055695 s | +0.00047398 s |
| Execution Time             | Time   | 0.00000286 s |   0.00030303 s | +0.00030017 s |
| From Start to End          | Memory |    0.0031 MB |      0.3202 MB |    +0.3170 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.3054 MB |    +0.3054 MB |
| Class Loading Time         | Memory |    0.0013 MB |      0.0113 MB |    +0.0100 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1 aspect, 1 execution)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00008988 s | 0.00733304 s | +0.00724316 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00646400 s | +0.00646305 s |
| Class Loading Time         | Time   | 0.00008297 s | 0.00055289 s | +0.00046992 s |
| Execution Time             | Time   | 0.00000286 s | 0.00031209 s | +0.00030923 s |
| From Start to End          | Memory |    0.0031 MB |    0.3202 MB |    +0.3171 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3054 MB |    +0.3054 MB |
| Class Loading Time         | Memory |    0.0013 MB |    0.0114 MB |    +0.0101 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1 aspect, 1 execution)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.00726295 s | 0.00733304 s | +0.00007010 s |
| Boot Time - Kernel::init() | Time   |   0.00640011 s | 0.00646400 s | +0.00006390 s |
| Class Loading Time         | Time   |   0.00055695 s | 0.00055289 s | -0.00000405 s |
| Execution Time             | Time   |   0.00030303 s | 0.00031209 s | +0.00000906 s |
| From Start to End          | Memory |      0.3202 MB |    0.3202 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      0.3054 MB |    0.3054 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0113 MB |    0.0114 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

5 aspects, 5 executions
-----------------------

Table 1: Without Aspects vs With Aspects (5 aspects, 5 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00012684 s | 0.06978011 s | +0.06965327 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00651193 s | +0.00651097 s |
| Class Loading Time         | Time   | 0.00011897 s | 0.06287694 s | +0.06275797 s |
| Execution Time             | Time   | 0.00000381 s | 0.00038695 s | +0.00038314 s |
| From Start to End          | Memory |    0.0698 MB |    3.2467 MB |    +3.1768 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.2506 MB |    +0.2506 MB |
| Class Loading Time         | Memory |    0.0680 MB |    2.9926 MB |    +2.9246 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (5 aspects, 5 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00012684 s |   0.00881720 s | +0.00869036 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.00782204 s | +0.00782108 s |
| Class Loading Time         | Time   | 0.00011897 s |   0.00059509 s | +0.00047612 s |
| Execution Time             | Time   | 0.00000381 s |   0.00039506 s | +0.00039124 s |
| From Start to End          | Memory |    0.0698 MB |      0.3340 MB |    +0.2642 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.3199 MB |    +0.3199 MB |
| Class Loading Time         | Memory |    0.0680 MB |      0.0106 MB |    -0.0574 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (5 aspects, 5 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00012684 s | 0.00749493 s | +0.00736809 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00651622 s | +0.00651526 s |
| Class Loading Time         | Time   | 0.00011897 s | 0.00055695 s | +0.00043797 s |
| Execution Time             | Time   | 0.00000381 s | 0.00041699 s | +0.00041318 s |
| From Start to End          | Memory |    0.0698 MB |    0.3341 MB |    +0.2643 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3200 MB |    +0.3200 MB |
| Class Loading Time         | Memory |    0.0680 MB |    0.0107 MB |    -0.0574 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (5 aspects, 5 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.00881720 s | 0.00749493 s | -0.00132227 s |
| Boot Time - Kernel::init() | Time   |   0.00782204 s | 0.00651622 s | -0.00130582 s |
| Class Loading Time         | Time   |   0.00059509 s | 0.00055695 s | -0.00003815 s |
| Execution Time             | Time   |   0.00039506 s | 0.00041699 s | +0.00002193 s |
| From Start to End          | Memory |      0.3340 MB |    0.3341 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      0.3199 MB |    0.3200 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0106 MB |    0.0107 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

20 aspects, 20 executions
-------------------------

Table 1: Without Aspects vs With Aspects (20 aspects, 20 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00031304 s | 0.09128213 s | +0.09096909 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.00696778 s | +0.00696659 s |
| Class Loading Time         | Time   | 0.00027585 s | 0.08308291 s | +0.08280706 s |
| Execution Time             | Time   | 0.00003314 s | 0.00122499 s | +0.00119185 s |
| From Start to End          | Memory |    0.0183 MB |    3.3305 MB |    +3.3122 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3071 MB |    +0.3071 MB |
| Class Loading Time         | Memory |    0.0165 MB |    3.0200 MB |    +3.0035 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (20 aspects, 20 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00031304 s |   0.00852680 s | +0.00821376 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s |   0.00676608 s | +0.00676489 s |
| Class Loading Time         | Time   | 0.00027585 s |   0.00060487 s | +0.00032902 s |
| Execution Time             | Time   | 0.00003314 s |   0.00115299 s | +0.00111985 s |
| From Start to End          | Memory |    0.0183 MB |      0.3907 MB |    +0.3723 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.3741 MB |    +0.3741 MB |
| Class Loading Time         | Memory |    0.0165 MB |      0.0131 MB |    -0.0034 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (20 aspects, 20 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00031304 s | 0.00869584 s | +0.00838280 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.00693297 s | +0.00693178 s |
| Class Loading Time         | Time   | 0.00027585 s | 0.00058603 s | +0.00031018 s |
| Execution Time             | Time   | 0.00003314 s | 0.00117397 s | +0.00114083 s |
| From Start to End          | Memory |    0.0183 MB |    0.3908 MB |    +0.3724 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3741 MB |    +0.3741 MB |
| Class Loading Time         | Memory |    0.0165 MB |    0.0132 MB |    -0.0034 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (20 aspects, 20 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.00852680 s | 0.00869584 s | +0.00016904 s |
| Boot Time - Kernel::init() | Time   |   0.00676608 s | 0.00693297 s | +0.00016689 s |
| Class Loading Time         | Time   |   0.00060487 s | 0.00058603 s | -0.00001884 s |
| Execution Time             | Time   |   0.00115299 s | 0.00117397 s | +0.00002098 s |
| From Start to End          | Memory |      0.3907 MB |    0.3908 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      0.3741 MB |    0.3741 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0131 MB |    0.0132 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

50 aspects, 50 executions
-------------------------

Table 1: Without Aspects vs With Aspects (50 aspects, 50 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00065303 s | 0.13262105 s | +0.13196802 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00708604 s | +0.00708508 s |
| Class Loading Time         | Time   | 0.00054097 s | 0.12019110 s | +0.11965013 s |
| Execution Time             | Time   | 0.00010800 s | 0.00533795 s | +0.00522995 s |
| From Start to End          | Memory |    0.0361 MB |    3.5152 MB |    +3.4791 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.3900 MB |    +0.3900 MB |
| Class Loading Time         | Memory |    0.0343 MB |    3.0593 MB |    +3.0249 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0642 MB |    +0.0642 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (50 aspects, 50 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00065303 s |   0.01367521 s | +0.01302218 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.00761199 s | +0.00761104 s |
| Class Loading Time         | Time   | 0.00054097 s |   0.00073600 s | +0.00019503 s |
| Execution Time             | Time   | 0.00010800 s |   0.00532317 s | +0.00521517 s |
| From Start to End          | Memory |    0.0361 MB |      0.5569 MB |    +0.5208 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.4737 MB |    +0.4737 MB |
| Class Loading Time         | Memory |    0.0343 MB |      0.0798 MB |    +0.0454 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (50 aspects, 50 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00065303 s | 0.01341915 s | +0.01276612 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00741291 s | +0.00741196 s |
| Class Loading Time         | Time   | 0.00054097 s | 0.00069904 s | +0.00015807 s |
| Execution Time             | Time   | 0.00010800 s | 0.00530219 s | +0.00519419 s |
| From Start to End          | Memory |    0.0361 MB |    0.5570 MB |    +0.5209 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.4738 MB |    +0.4738 MB |
| Class Loading Time         | Memory |    0.0343 MB |    0.0173 MB |    -0.0170 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0642 MB |    +0.0642 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (50 aspects, 50 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.01367521 s | 0.01341915 s | -0.00025606 s |
| Boot Time - Kernel::init() | Time   |   0.00761199 s | 0.00741291 s | -0.00019908 s |
| Class Loading Time         | Time   |   0.00073600 s | 0.00069904 s | -0.00003695 s |
| Execution Time             | Time   |   0.00532317 s | 0.00530219 s | -0.00002098 s |
| From Start to End          | Memory |      0.5569 MB |    0.5570 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      0.4737 MB |    0.4738 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0798 MB |    0.0173 MB |    -0.0625 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0642 MB |    +0.0625 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

100 aspects, 100 executions
---------------------------

Table 1: Without Aspects vs With Aspects (100 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00140285 s | 0.21807194 s | +0.21666908 s |
| Boot Time - Kernel::init() | Time   | 0.00000000 s | 0.00812006 s | +0.00812006 s |
| Class Loading Time         | Time   | 0.00093412 s | 0.18973207 s | +0.18879795 s |
| Execution Time             | Time   | 0.00046492 s | 0.02021503 s | +0.01975012 s |
| From Start to End          | Memory |    0.1242 MB |    4.8221 MB |    +4.6979 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.5993 MB |    +0.5993 MB |
| Class Loading Time         | Memory |    0.1224 MB |    4.2193 MB |    +4.0970 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (100 aspects, 100 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00140285 s |   0.03079891 s | +0.02939606 s |
| Boot Time - Kernel::init() | Time   | 0.00000000 s |   0.00850511 s | +0.00850511 s |
| Class Loading Time         | Time   | 0.00093412 s |   0.00115013 s | +0.00021601 s |
| Execution Time             | Time   | 0.00046492 s |   0.02113986 s | +0.02067494 s |
| From Start to End          | Memory |    0.1242 MB |      0.7325 MB |    +0.6083 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.7043 MB |    +0.7043 MB |
| Class Loading Time         | Memory |    0.1224 MB |      0.0248 MB |    -0.0976 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (100 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00140285 s | 0.02996683 s | +0.02856398 s |
| Boot Time - Kernel::init() | Time   | 0.00000000 s | 0.00832200 s | +0.00832200 s |
| Class Loading Time         | Time   | 0.00093412 s | 0.00105214 s | +0.00011802 s |
| Execution Time             | Time   | 0.00046492 s | 0.02058792 s | +0.02012300 s |
| From Start to End          | Memory |    0.1242 MB |    0.7326 MB |    +0.6084 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.7043 MB |    +0.7043 MB |
| Class Loading Time         | Memory |    0.1224 MB |    0.0248 MB |    -0.0976 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (100 aspects, 100 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.03079891 s | 0.02996683 s | -0.00083208 s |
| Boot Time - Kernel::init() | Time   |   0.00850511 s | 0.00832200 s | -0.00018311 s |
| Class Loading Time         | Time   |   0.00115013 s | 0.00105214 s | -0.00009799 s |
| Execution Time             | Time   |   0.02113986 s | 0.02058792 s | -0.00055194 s |
| From Start to End          | Memory |      0.7325 MB |    0.7326 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      0.7043 MB |    0.7043 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0248 MB |    0.0248 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 100 executions
---------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00568390 s | 0.83134007 s | +0.82565618 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.01485205 s | +0.01485085 s |
| Class Loading Time         | Time   | 0.00376296 s | 0.70778513 s | +0.70402217 s |
| Execution Time             | Time   | 0.00191689 s | 0.10869694 s | +0.10678005 s |
| From Start to End          | Memory |    0.8225 MB |    6.2208 MB |    +5.3982 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    2.3784 MB |    +2.3784 MB |
| Class Loading Time         | Memory |    0.8207 MB |    3.8389 MB |    +3.0181 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 100 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00568390 s |   0.12883902 s | +0.12315512 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s |   0.01506996 s | +0.01506877 s |
| Class Loading Time         | Time   | 0.00376296 s |   0.01208615 s | +0.00832319 s |
| Execution Time             | Time   | 0.00191689 s |   0.10167694 s | +0.09976006 s |
| From Start to End          | Memory |    0.8225 MB |      2.7099 MB |    +1.8873 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      2.5547 MB |    +2.5547 MB |
| Class Loading Time         | Memory |    0.8207 MB |      0.1517 MB |    -0.6690 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 100 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00568390 s | 0.13343000 s | +0.12774611 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.01733613 s | +0.01733494 s |
| Class Loading Time         | Time   | 0.00376296 s | 0.01319408 s | +0.00943112 s |
| Execution Time             | Time   | 0.00191689 s | 0.10289502 s | +0.10097814 s |
| From Start to End          | Memory |    0.8225 MB |    2.0475 MB |    +1.2249 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.8924 MB |    +1.8924 MB |
| Class Loading Time         | Memory |    0.8207 MB |    0.1517 MB |    -0.6691 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 100 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.12883902 s | 0.13343000 s | +0.00459099 s |
| Boot Time - Kernel::init() | Time   |   0.01506996 s | 0.01733613 s | +0.00226617 s |
| Class Loading Time         | Time   |   0.01208615 s | 0.01319408 s | +0.00110793 s |
| Execution Time             | Time   |   0.10167694 s | 0.10289502 s | +0.00121808 s |
| From Start to End          | Memory |      2.7099 MB |    2.0475 MB |    -0.6624 MB |
| Boot Time - Kernel::init() | Memory |      2.5547 MB |    1.8924 MB |    -0.6623 MB |
| Class Loading Time         | Memory |      0.1517 MB |    0.1517 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

100 aspects, 500 executions
---------------------------

Table 1: Without Aspects vs With Aspects (100 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00290990 s | 0.29753685 s | +0.29462695 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00925303 s | +0.00925207 s |
| Class Loading Time         | Time   | 0.00105619 s | 0.18732882 s | +0.18627262 s |
| Execution Time             | Time   | 0.00184989 s | 0.10094810 s | +0.09909821 s |
| From Start to End          | Memory |    0.1439 MB |    4.8007 MB |    +4.6568 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.5788 MB |    +0.5788 MB |
| Class Loading Time         | Memory |    0.1422 MB |    4.2185 MB |    +4.0763 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (100 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.00290990 s |   0.11188912 s | +0.10897923 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.00916100 s | +0.00916004 s |
| Class Loading Time         | Time   | 0.00105619 s |   0.00111198 s | +0.00005579 s |
| Execution Time             | Time   | 0.00184989 s |   0.10161209 s | +0.09976220 s |
| From Start to End          | Memory |    0.1439 MB |      0.6494 MB |    +0.5055 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      0.6213 MB |    +0.6213 MB |
| Class Loading Time         | Memory |    0.1422 MB |      0.0247 MB |    -0.1175 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (100 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.00290990 s | 0.11177707 s | +0.10886717 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.00913906 s | +0.00913811 s |
| Class Loading Time         | Time   | 0.00105619 s | 0.00101805 s | -0.00003815 s |
| Execution Time             | Time   | 0.00184989 s | 0.10161400 s | +0.09976411 s |
| From Start to End          | Memory |    0.1439 MB |    0.6495 MB |    +0.5056 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    0.6214 MB |    +0.6214 MB |
| Class Loading Time         | Memory |    0.1422 MB |    0.0247 MB |    -0.1174 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (100 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.11188912 s | 0.11177707 s | -0.00011206 s |
| Boot Time - Kernel::init() | Time   |   0.00916100 s | 0.00913906 s | -0.00002193 s |
| Class Loading Time         | Time   |   0.00111198 s | 0.00101805 s | -0.00009394 s |
| Execution Time             | Time   |   0.10161209 s | 0.10161400 s | +0.00000191 s |
| From Start to End          | Memory |      0.6494 MB |    0.6495 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      0.6213 MB |    0.6214 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0247 MB |    0.0247 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 500 executions
---------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.01388192 s | 1.21738505 s | +1.20350313 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.01610398 s | +0.01610303 s |
| Class Loading Time         | Time   | 0.00484324 s | 0.71103287 s | +0.70618963 s |
| Execution Time             | Time   | 0.00903487 s | 0.49024296 s | +0.48120809 s |
| From Start to End          | Memory |    0.4807 MB |    5.6200 MB |    +5.1393 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.7160 MB |    +1.7160 MB |
| Class Loading Time         | Memory |    0.4789 MB |    3.8380 MB |    +3.3591 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0642 MB |    +0.0642 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.01388192 s |   0.52149796 s | +0.50761604 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.01758409 s | +0.01758313 s |
| Class Loading Time         | Time   | 0.00484324 s |   0.01151013 s | +0.00666690 s |
| Execution Time             | Time   | 0.00903487 s |   0.49239898 s | +0.48336411 s |
| From Start to End          | Memory |    0.4807 MB |      2.0474 MB |    +1.5667 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      1.8923 MB |    +1.8923 MB |
| Class Loading Time         | Memory |    0.4789 MB |      0.1516 MB |    -0.3273 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.01388192 s | 0.52503490 s | +0.51115298 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.01775908 s | +0.01775813 s |
| Class Loading Time         | Time   | 0.00484324 s | 0.01183200 s | +0.00698876 s |
| Execution Time             | Time   | 0.00903487 s | 0.49543905 s | +0.48640418 s |
| From Start to End          | Memory |    0.4807 MB |    2.0475 MB |    +1.5667 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.8924 MB |    +1.8924 MB |
| Class Loading Time         | Memory |    0.4789 MB |    0.1517 MB |    -0.3273 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   0.52149796 s | 0.52503490 s | +0.00353694 s |
| Boot Time - Kernel::init() | Time   |   0.01758409 s | 0.01775908 s | +0.00017500 s |
| Class Loading Time         | Time   |   0.01151013 s | 0.01183200 s | +0.00032187 s |
| Execution Time             | Time   |   0.49239898 s | 0.49543905 s | +0.00304008 s |
| From Start to End          | Memory |      2.0474 MB |    2.0475 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      1.8923 MB |    1.8924 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.1516 MB |    0.1517 MB |     0.0000 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

1000 aspects, 500 executions
----------------------------

Table 1: Without Aspects vs With Aspects (1000 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02792716 s | 2.61844993 s | +2.59052277 s |
| Boot Time - Kernel::init() | Time   | 0.00000000 s | 0.02535915 s | +0.02535915 s |
| Class Loading Time         | Time   | 0.00883603 s | 1.39908600 s | +1.39024997 s |
| Execution Time             | Time   | 0.01908612 s | 1.19399786 s | +1.17491174 s |
| From Start to End          | Memory |    1.4102 MB |    9.6891 MB |    +8.2789 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    4.0525 MB |    +4.0525 MB |
| Class Loading Time         | Memory |    1.4084 MB |    5.5706 MB |    +4.1623 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0642 MB |    +0.0642 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 500 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.02792716 s |   1.10651803 s | +1.07859087 s |
| Boot Time - Kernel::init() | Time   | 0.00000000 s |   0.02873611 s | +0.02873611 s |
| Class Loading Time         | Time   | 0.00883603 s |   0.05110407 s | +0.04226804 s |
| Execution Time             | Time   | 0.01908612 s |   1.02667093 s | +1.00758481 s |
| From Start to End          | Memory |    1.4102 MB |      4.5568 MB |    +3.1467 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      3.5616 MB |    +3.5616 MB |
| Class Loading Time         | Memory |    1.4084 MB |      0.1583 MB |    -1.2500 MB |
| Execution Time             | Memory |    0.0000 MB |      0.8351 MB |    +0.8351 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1000 aspects, 500 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02792716 s | 1.13479495 s | +1.10686779 s |
| Boot Time - Kernel::init() | Time   | 0.00000000 s | 0.03024697 s | +0.03024697 s |
| Class Loading Time         | Time   | 0.00883603 s | 0.04809999 s | +0.03926396 s |
| Execution Time             | Time   | 0.01908612 s | 1.05644107 s | +1.03735495 s |
| From Start to End          | Memory |    1.4102 MB |    4.4434 MB |    +3.0333 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.5617 MB |    +3.5617 MB |
| Class Loading Time         | Memory |    1.4084 MB |    0.0449 MB |    -1.3635 MB |
| Execution Time             | Memory |    0.0000 MB |    0.8351 MB |    +0.8351 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1000 aspects, 500 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   1.10651803 s | 1.13479495 s | +0.02827692 s |
| Boot Time - Kernel::init() | Time   |   0.02873611 s | 0.03024697 s | +0.00151086 s |
| Class Loading Time         | Time   |   0.05110407 s | 0.04809999 s | -0.00300407 s |
| Execution Time             | Time   |   1.02667093 s | 1.05644107 s | +0.02977014 s |
| From Start to End          | Memory |      4.5568 MB |    4.4434 MB |    -0.1134 MB |
| Boot Time - Kernel::init() | Memory |      3.5616 MB |    3.5617 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.1583 MB |    0.0449 MB |    -0.1134 MB |
| Execution Time             | Memory |      0.8351 MB |    0.8351 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

500 aspects, 1000 executions
----------------------------

Table 1: Without Aspects vs With Aspects (500 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02307200 s | 1.75076914 s | +1.72769713 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.01631594 s | +0.01631498 s |
| Class Loading Time         | Time   | 0.00478792 s | 0.71172404 s | +0.70693612 s |
| Execution Time             | Time   | 0.01827908 s | 1.02272296 s | +1.00444388 s |
| From Start to End          | Memory |    0.4807 MB |    5.6200 MB |    +5.1393 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.7160 MB |    +1.7160 MB |
| Class Loading Time         | Memory |    0.4789 MB |    3.8380 MB |    +3.3591 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0642 MB |    +0.0642 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (500 aspects, 1000 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.02307200 s |   1.02475405 s | +1.00168204 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s |   0.01762605 s | +0.01762509 s |
| Class Loading Time         | Time   | 0.00478792 s |   0.01216507 s | +0.00737715 s |
| Execution Time             | Time   | 0.01827908 s |   0.99495196 s | +0.97667289 s |
| From Start to End          | Memory |    0.4807 MB |      2.0474 MB |    +1.5667 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      1.8923 MB |    +1.8923 MB |
| Class Loading Time         | Memory |    0.4789 MB |      0.1516 MB |    -0.3273 MB |
| Execution Time             | Memory |    0.0000 MB |      0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (500 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.02307200 s | 1.02275920 s | +0.99968719 s |
| Boot Time - Kernel::init() | Time   | 0.00000095 s | 0.01720285 s | +0.01720190 s |
| Class Loading Time         | Time   | 0.00478792 s | 0.01153803 s | +0.00675011 s |
| Execution Time             | Time   | 0.01827908 s | 0.99401188 s | +0.97573280 s |
| From Start to End          | Memory |    0.4807 MB |    1.9876 MB |    +1.5068 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    1.8924 MB |    +1.8924 MB |
| Class Loading Time         | Memory |    0.4789 MB |    0.0918 MB |    -0.3872 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0017 MB |    +0.0017 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (500 aspects, 1000 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   1.02475405 s | 1.02275920 s | -0.00199485 s |
| Boot Time - Kernel::init() | Time   |   0.01762605 s | 0.01720285 s | -0.00042319 s |
| Class Loading Time         | Time   |   0.01216507 s | 0.01153803 s | -0.00062704 s |
| Execution Time             | Time   |   0.99495196 s | 0.99401188 s | -0.00094008 s |
| From Start to End          | Memory |      2.0474 MB |    1.9876 MB |    -0.0598 MB |
| Boot Time - Kernel::init() | Memory |      1.8923 MB |    1.8924 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.1516 MB |    0.0918 MB |    -0.0599 MB |
| Execution Time             | Memory |      0.0017 MB |    0.0017 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

....

1000 aspects, 1000 executions
-----------------------------

Table 1: Without Aspects vs With Aspects (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |      Aspects |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.04875803 s | 3.40626597 s | +3.35750794 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.02777386 s | +0.02777267 s |
| Class Loading Time         | Time   | 0.00924993 s | 1.40511394 s | +1.39586401 s |
| Execution Time             | Time   | 0.03950405 s | 1.97337103 s | +1.93386698 s |
| From Start to End          | Memory |    0.9829 MB |    8.8603 MB |    +7.8774 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.2246 MB |    +3.2246 MB |
| Class Loading Time         | Memory |    0.9811 MB |    5.5698 MB |    +4.5886 MB |
| Execution Time             | Memory |    0.0000 MB |    0.0642 MB |    +0.0642 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+----------------+---------------+
| Measure Type               | Metric |   No Aspects | Cached Aspects |    Difference |
+----------------------------+--------+--------------+----------------+---------------+
| From Start to End          | Time   | 0.04875803 s |   2.04736304 s | +1.99860501 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s |   0.02864003 s | +0.02863884 s |
| Class Loading Time         | Time   | 0.00924993 s |   0.04562187 s | +0.03637195 s |
| Execution Time             | Time   | 0.03950405 s |   1.97309518 s | +1.93359113 s |
| From Start to End          | Memory |    0.9829 MB |      4.4434 MB |    +3.4604 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |      3.5616 MB |    +3.5616 MB |
| Class Loading Time         | Memory |    0.9811 MB |      0.0449 MB |    -0.9363 MB |
| Execution Time             | Memory |    0.0000 MB |      0.8351 MB |    +0.8351 MB |
+----------------------------+--------+--------------+----------------+---------------+

Table 3: Without Aspects vs Production (1000 aspects, 1000 executions)
+----------------------------+--------+--------------+--------------+---------------+
| Measure Type               | Metric |   No Aspects |   Production |    Difference |
+----------------------------+--------+--------------+--------------+---------------+
| From Start to End          | Time   | 0.04875803 s | 2.05532002 s | +2.00656199 s |
| Boot Time - Kernel::init() | Time   | 0.00000119 s | 0.02810311 s | +0.02810192 s |
| Class Loading Time         | Time   | 0.00924993 s | 0.04630899 s | +0.03705907 s |
| Execution Time             | Time   | 0.03950405 s | 1.98090196 s | +1.94139791 s |
| From Start to End          | Memory |    0.9829 MB |    4.4434 MB |    +3.4605 MB |
| Boot Time - Kernel::init() | Memory |    0.0000 MB |    3.5617 MB |    +3.5617 MB |
| Class Loading Time         | Memory |    0.9811 MB |    0.0449 MB |    -0.9362 MB |
| Execution Time             | Memory |    0.0000 MB |    0.8351 MB |    +0.8351 MB |
+----------------------------+--------+--------------+--------------+---------------+

Table 4: With Cached Aspects vs Production (1000 aspects, 1000 executions)
+----------------------------+--------+----------------+--------------+---------------+
| Measure Type               | Metric | Cached Aspects |   Production |    Difference |
+----------------------------+--------+----------------+--------------+---------------+
| From Start to End          | Time   |   2.04736304 s | 2.05532002 s | +0.00795698 s |
| Boot Time - Kernel::init() | Time   |   0.02864003 s | 0.02810311 s | -0.00053692 s |
| Class Loading Time         | Time   |   0.04562187 s | 0.04630899 s | +0.00068712 s |
| Execution Time             | Time   |   1.97309518 s | 1.98090196 s | +0.00780678 s |
| From Start to End          | Memory |      4.4434 MB |    4.4434 MB |    +0.0001 MB |
| Boot Time - Kernel::init() | Memory |      3.5616 MB |    3.5617 MB |    +0.0001 MB |
| Class Loading Time         | Memory |      0.0449 MB |    0.0449 MB |     0.0000 MB |
| Execution Time             | Memory |      0.8351 MB |    0.8351 MB |     0.0000 MB |
+----------------------------+--------+----------------+--------------+---------------+

.                     45 / 45 (100%)

Time: 01:08.396, Memory: 8.00 MB

OK (45 tests, 45 assertions)

@WalterWoshid
Copy link
Contributor Author

WalterWoshid commented Sep 17, 2023

Windows 10 (PHP 8.1.17 - Okapi/AOP 1.2.4):

  • Windows 10 Build 19045
  • Intel Core i7-7700k @ 4.20GHz, 4 Cores, 8 Logical Processors
  • NVIDIA GeForce GTX 1080
  • 32 GB of RAM
  • M.2 SSD
PHPUnit 10.3.4 by Sebastian Bergmann and contributors.
 
Runtime:       PHP 8.1.17
Configuration: E:\Projects\Okapi\php-aop\phpunit.xml
 
...Table 1: Without Aspects vs With Aspects (1 aspect, 1 time)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0003 s |     0.1176 s |  +0.1173 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.0224 s |  +0.0224 s |
| Class Loading Time         | Time   |        0.0003 s |     0.0946 s |  +0.0943 s |
| Method Call Time           | Time   |        0.0000 s |     0.0007 s |  +0.0007 s |
| From Start to End          | Memory |         0.00 MB |      8.23 MB |   +8.22 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      0.68 MB |   +0.68 MB |
| Class Loading Time         | Memory |         0.00 MB |      7.52 MB |   +7.52 MB |
| Method Call Time           | Memory |         0.00 MB |      0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (1 aspect, 1 time)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0003 s |            0.0141 s |  +0.0138 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0120 s |  +0.0120 s |
| Class Loading Time         | Time   |        0.0003 s |            0.0015 s |  +0.0012 s |
| Method Call Time           | Time   |        0.0000 s |            0.0006 s |  +0.0006 s |
| From Start to End          | Memory |         0.00 MB |             0.86 MB |   +0.86 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             0.72 MB |   +0.72 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.11 MB |   +0.11 MB |
| Method Call Time           | Memory |         0.00 MB |             0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (5 aspects, 5 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0002 s |     0.1284 s |  +0.1282 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.0126 s |  +0.0126 s |
| Class Loading Time         | Time   |        0.0002 s |     0.1150 s |  +0.1148 s |
| Method Call Time           | Time   |        0.0000 s |     0.0008 s |  +0.0008 s |
| From Start to End          | Memory |         0.00 MB |      8.25 MB |   +8.25 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      0.69 MB |   +0.69 MB |
| Class Loading Time         | Memory |         0.00 MB |      7.53 MB |   +7.53 MB |
| Method Call Time           | Memory |         0.00 MB |      0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (5 aspects, 5 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0002 s |            0.0150 s |  +0.0148 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0127 s |  +0.0127 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0015 s |  +0.0013 s |
| Method Call Time           | Time   |        0.0000 s |            0.0007 s |  +0.0007 s |
| From Start to End          | Memory |         0.00 MB |             0.88 MB |   +0.87 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             0.80 MB |   +0.80 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.04 MB |   +0.04 MB |
| Method Call Time           | Memory |         0.00 MB |             0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (20 aspects, 20 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0002 s |     0.1877 s |  +0.1875 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.0210 s |  +0.0210 s |
| Class Loading Time         | Time   |        0.0002 s |     0.1642 s |  +0.1640 s |
| Method Call Time           | Time   |        0.0000 s |     0.0025 s |  +0.0024 s |
| From Start to End          | Memory |         0.01 MB |      8.35 MB |   +8.35 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      0.82 MB |   +0.82 MB |
| Class Loading Time         | Memory |         0.00 MB |      7.50 MB |   +7.50 MB |
| Method Call Time           | Memory |         0.00 MB |      0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (20 aspects, 20 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0002 s |            0.0183 s |  +0.0181 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0144 s |  +0.0144 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0016 s |  +0.0014 s |
| Method Call Time           | Time   |        0.0000 s |            0.0023 s |  +0.0023 s |
| From Start to End          | Memory |         0.01 MB |             0.96 MB |   +0.95 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             0.88 MB |   +0.88 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.05 MB |   +0.05 MB |
| Method Call Time           | Memory |         0.00 MB |             0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (50 aspects, 50 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0003 s |     0.3409 s |  +0.3406 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.0701 s |  +0.0701 s |
| Class Loading Time         | Time   |        0.0002 s |     0.2599 s |  +0.2598 s |
| Method Call Time           | Time   |        0.0001 s |     0.0108 s |  +0.0107 s |
| From Start to End          | Memory |         0.01 MB |      8.60 MB |   +8.59 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      0.95 MB |   +0.95 MB |
| Class Loading Time         | Memory |         0.00 MB |      7.61 MB |   +7.61 MB |
| Method Call Time           | Memory |         0.00 MB |      0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (50 aspects, 50 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0003 s |            0.0312 s |  +0.0309 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0185 s |  +0.0185 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0020 s |  +0.0019 s |
| Method Call Time           | Time   |        0.0001 s |            0.0107 s |  +0.0106 s |
| From Start to End          | Memory |         0.01 MB |             1.11 MB |   +1.10 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             1.02 MB |   +1.02 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.05 MB |   +0.05 MB |
| Method Call Time           | Memory |         0.00 MB |             0.03 MB |   +0.03 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (100 aspects, 100 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0007 s |     0.6140 s |  +0.6133 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.1234 s |  +0.1234 s |
| Class Loading Time         | Time   |        0.0002 s |     0.4493 s |  +0.4491 s |
| Method Call Time           | Time   |        0.0005 s |     0.0413 s |  +0.0408 s |
| From Start to End          | Memory |         0.02 MB |     10.15 MB |  +10.13 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      1.18 MB |   +1.18 MB |
| Class Loading Time         | Memory |         0.00 MB |      8.92 MB |   +8.92 MB |
| Method Call Time           | Memory |         0.02 MB |      0.04 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (100 aspects, 100 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0007 s |            0.0851 s |  +0.0845 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0238 s |  +0.0238 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0032 s |  +0.0030 s |
| Method Call Time           | Time   |        0.0005 s |            0.0581 s |  +0.0576 s |
| From Start to End          | Memory |         0.02 MB |             1.46 MB |   +1.44 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             1.34 MB |   +1.34 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.07 MB |   +0.07 MB |
| Method Call Time           | Memory |         0.02 MB |             0.04 MB |   +0.03 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (500 aspects, 100 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0024 s |     2.8308 s |  +2.8283 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.9136 s |  +0.9136 s |
| Class Loading Time         | Time   |        0.0002 s |     1.7144 s |  +1.7142 s |
| Method Call Time           | Time   |        0.0023 s |     0.2028 s |  +0.2005 s |
| From Start to End          | Memory |         0.02 MB |     11.81 MB |  +11.79 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      3.27 MB |   +3.27 MB |
| Class Loading Time         | Memory |         0.00 MB |      8.50 MB |   +8.49 MB |
| Method Call Time           | Memory |         0.02 MB |      0.04 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (500 aspects, 100 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0024 s |            0.3210 s |  +0.3186 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0714 s |  +0.0714 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0344 s |  +0.0342 s |
| Method Call Time           | Time   |        0.0023 s |            0.2152 s |  +0.2129 s |
| From Start to End          | Memory |         0.02 MB |             3.77 MB |   +3.75 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             3.51 MB |   +3.51 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.15 MB |   +0.14 MB |
| Method Call Time           | Memory |         0.02 MB |             0.11 MB |   +0.09 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (100 aspects, 500 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0025 s |     0.8046 s |  +0.8021 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.0235 s |  +0.0235 s |
| Class Loading Time         | Time   |        0.0002 s |     0.4757 s |  +0.4755 s |
| Method Call Time           | Time   |        0.0023 s |     0.3054 s |  +0.3031 s |
| From Start to End          | Memory |         0.04 MB |     10.17 MB |  +10.13 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      1.18 MB |   +1.18 MB |
| Class Loading Time         | Memory |         0.00 MB |      8.92 MB |   +8.92 MB |
| Method Call Time           | Memory |         0.04 MB |      0.07 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (100 aspects, 500 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0025 s |            0.2263 s |  +0.2238 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0241 s |  +0.0241 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0032 s |  +0.0030 s |
| Method Call Time           | Time   |        0.0023 s |            0.1989 s |  +0.1966 s |
| From Start to End          | Memory |         0.04 MB |             1.49 MB |   +1.44 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             1.34 MB |   +1.34 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.07 MB |   +0.07 MB |
| Method Call Time           | Memory |         0.04 MB |             0.07 MB |   +0.03 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (1000 aspects, 500 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0259 s |     6.5025 s |  +6.4766 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     1.0413 s |  +1.0413 s |
| Class Loading Time         | Time   |        0.0002 s |     3.2949 s |  +3.2947 s |
| Method Call Time           | Time   |        0.0258 s |     2.1663 s |  +2.1406 s |
| From Start to End          | Memory |         0.04 MB |     16.44 MB |  +16.39 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      5.90 MB |   +5.90 MB |
| Class Loading Time         | Memory |         0.00 MB |     10.41 MB |  +10.41 MB |
| Method Call Time           | Memory |         0.04 MB |      0.13 MB |   +0.09 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 500 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0259 s |            2.4613 s |  +2.4353 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.1328 s |  +0.1328 s |
| Class Loading Time         | Time   |        0.0002 s |            0.1429 s |  +0.1428 s |
| Method Call Time           | Time   |        0.0258 s |            2.1855 s |  +2.1598 s |
| From Start to End          | Memory |         0.04 MB |             7.78 MB |   +7.73 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             6.32 MB |   +6.32 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.55 MB |   +0.55 MB |
| Method Call Time           | Memory |         0.04 MB |             0.90 MB |   +0.86 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (500 aspects, 1000 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0258 s |     3.8130 s |  +3.7872 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.0705 s |  +0.0705 s |
| Class Loading Time         | Time   |        0.0002 s |     1.6481 s |  +1.6479 s |
| Method Call Time           | Time   |        0.0256 s |     2.0944 s |  +2.0688 s |
| From Start to End          | Memory |         0.07 MB |     11.87 MB |  +11.79 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      3.27 MB |   +3.27 MB |
| Class Loading Time         | Memory |         0.00 MB |      8.50 MB |   +8.49 MB |
| Method Call Time           | Memory |         0.07 MB |      0.10 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (500 aspects, 1000 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0258 s |            2.2287 s |  +2.2029 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0725 s |  +0.0725 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0349 s |  +0.0347 s |
| Method Call Time           | Time   |        0.0256 s |            2.1213 s |  +2.0957 s |
| From Start to End          | Memory |         0.07 MB |             3.82 MB |   +3.75 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             3.51 MB |   +3.51 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.15 MB |   +0.14 MB |
| Method Call Time           | Memory |         0.07 MB |             0.16 MB |   +0.09 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (1000 aspects, 1000 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0450 s |     8.0924 s |  +8.0474 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.1292 s |  +0.1292 s |
| Class Loading Time         | Time   |        0.0002 s |     3.3626 s |  +3.3624 s |
| Method Call Time           | Time   |        0.0448 s |     4.6006 s |  +4.5558 s |
| From Start to End          | Memory |         0.07 MB |     16.47 MB |  +16.39 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      5.90 MB |   +5.90 MB |
| Class Loading Time         | Memory |         0.00 MB |     10.41 MB |  +10.41 MB |
| Method Call Time           | Memory |         0.07 MB |      0.16 MB |   +0.09 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 1000 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0450 s |            4.7331 s |  +4.6881 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.1307 s |  +0.1307 s |
| Class Loading Time         | Time   |        0.0002 s |            0.1373 s |  +0.1371 s |
| Method Call Time           | Time   |        0.0448 s |            4.4651 s |  +4.4203 s |
| From Start to End          | Memory |         0.07 MB |             7.81 MB |   +7.73 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             6.32 MB |   +6.32 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.55 MB |   +0.55 MB |
| Method Call Time           | Memory |         0.07 MB |             0.93 MB |   +0.86 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (1 aspect, 5000 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0015 s |     0.1812 s |  +0.1797 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.0114 s |  +0.0114 s |
| Class Loading Time         | Time   |        0.0002 s |     0.0952 s |  +0.0950 s |
| Method Call Time           | Time   |        0.0013 s |     0.0746 s |  +0.0733 s |
| From Start to End          | Memory |         0.51 MB |      8.74 MB |   +8.22 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      0.68 MB |   +0.68 MB |
| Class Loading Time         | Memory |         0.00 MB |      7.52 MB |   +7.52 MB |
| Method Call Time           | Memory |         0.51 MB |      0.54 MB |   +0.03 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (1 aspect, 5000 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0015 s |            0.0778 s |  +0.0763 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.0123 s |  +0.0123 s |
| Class Loading Time         | Time   |        0.0002 s |            0.0015 s |  +0.0013 s |
| Method Call Time           | Time   |        0.0013 s |            0.0640 s |  +0.0627 s |
| From Start to End          | Memory |         0.51 MB |             1.37 MB |   +0.86 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             0.72 MB |   +0.72 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.11 MB |   +0.11 MB |
| Method Call Time           | Memory |         0.51 MB |             0.54 MB |   +0.03 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (5000 aspects, 1 time)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.0004 s |    20.7667 s | +20.7663 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     1.3850 s |  +1.3850 s |
| Class Loading Time         | Time   |        0.0002 s |    19.3530 s | +19.3528 s |
| Method Call Time           | Time   |        0.0003 s |     0.0287 s |  +0.0285 s |
| From Start to End          | Memory |         0.00 MB |     43.74 MB |  +43.73 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |     29.63 MB |  +29.63 MB |
| Class Loading Time         | Memory |         0.00 MB |     13.89 MB |  +13.89 MB |
| Method Call Time           | Memory |         0.00 MB |      0.22 MB |   +0.22 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (5000 aspects, 1 time)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.0004 s |            4.1606 s |  +4.1602 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.6464 s |  +0.6464 s |
| Class Loading Time         | Time   |        0.0002 s |            3.4783 s |  +3.4781 s |
| Method Call Time           | Time   |        0.0003 s |            0.0359 s |  +0.0356 s |
| From Start to End          | Memory |         0.00 MB |            34.66 MB |  +34.65 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |            31.81 MB |  +31.81 MB |
| Class Loading Time         | Memory |         0.00 MB |             1.26 MB |   +1.26 MB |
| Method Call Time           | Memory |         0.00 MB |             1.58 MB |   +1.58 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (5000 aspects, 1000 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.2651 s |    44.9292 s | +44.6641 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.6312 s |  +0.6312 s |
| Class Loading Time         | Time   |        0.0002 s |    18.7196 s | +18.7194 s |
| Method Call Time           | Time   |        0.2649 s |    25.5784 s | +25.3135 s |
| From Start to End          | Memory |         0.07 MB |     43.81 MB |  +43.73 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |     29.63 MB |  +29.63 MB |
| Class Loading Time         | Memory |         0.00 MB |     13.89 MB |  +13.89 MB |
| Method Call Time           | Memory |         0.07 MB |      0.29 MB |   +0.22 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (5000 aspects, 1000 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.2651 s |           29.1483 s | +28.8832 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.6410 s |  +0.6410 s |
| Class Loading Time         | Time   |        0.0002 s |            3.4108 s |  +3.4106 s |
| Method Call Time           | Time   |        0.2649 s |           25.0965 s | +24.8316 s |
| From Start to End          | Memory |         0.07 MB |            34.73 MB |  +34.65 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |            31.81 MB |  +31.81 MB |
| Class Loading Time         | Memory |         0.00 MB |             1.26 MB |   +1.26 MB |
| Method Call Time           | Memory |         0.07 MB |             1.65 MB |   +1.58 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (1000 aspects, 5000 times)
+----------------------------+--------+-----------------+--------------+------------+
| Measure Type               | Metric | Without Aspects | With Aspects | Difference |
+----------------------------+--------+-----------------+--------------+------------+
| From Start to End          | Time   |        0.3757 s |    38.1595 s | +37.7838 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.1783 s |  +0.1783 s |
| Class Loading Time         | Time   |        0.0003 s |     5.7364 s |  +5.7361 s |
| Method Call Time           | Time   |        0.3754 s |    32.2448 s | +31.8693 s |
| From Start to End          | Memory |         0.51 MB |     16.91 MB |  +16.39 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |      5.90 MB |   +5.90 MB |
| Class Loading Time         | Memory |         0.00 MB |     10.41 MB |  +10.41 MB |
| Method Call Time           | Memory |         0.51 MB |      0.60 MB |   +0.09 MB |
+----------------------------+--------+-----------------+--------------+------------+
 
Table 2: Without Aspects vs With Cached Aspects (1000 aspects, 5000 times)
+----------------------------+--------+-----------------+---------------------+------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects | Difference |
+----------------------------+--------+-----------------+---------------------+------------+
| From Start to End          | Time   |        0.3757 s |           22.9094 s | +22.5337 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.1364 s |  +0.1364 s |
| Class Loading Time         | Time   |        0.0003 s |            0.1323 s |  +0.1320 s |
| Method Call Time           | Time   |        0.3754 s |           22.6406 s | +22.2652 s |
| From Start to End          | Memory |         0.51 MB |             8.25 MB |   +7.73 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |             6.32 MB |   +6.32 MB |
| Class Loading Time         | Memory |         0.00 MB |             0.55 MB |   +0.55 MB |
| Method Call Time           | Memory |         0.51 MB |             1.37 MB |   +0.86 MB |
+----------------------------+--------+-----------------+---------------------+------------+
 
 
 
...Table 1: Without Aspects vs With Aspects (5000 aspects, 5000 times)
+----------------------------+--------+-----------------+--------------+-------------+
| Measure Type               | Metric | Without Aspects | With Aspects |  Difference |
+----------------------------+--------+-----------------+--------------+-------------+
| From Start to End          | Time   |        1.2530 s |   150.7529 s | +149.4998 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |     0.6762 s |   +0.6762 s |
| Class Loading Time         | Time   |        0.0002 s |    20.9047 s |  +20.9045 s |
| Method Call Time           | Time   |        1.2529 s |   129.1720 s | +127.9191 s |
| From Start to End          | Memory |         0.51 MB |     44.24 MB |   +43.73 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |     29.63 MB |   +29.63 MB |
| Class Loading Time         | Memory |         0.00 MB |     13.89 MB |   +13.89 MB |
| Method Call Time           | Memory |         0.51 MB |      0.72 MB |    +0.22 MB |
+----------------------------+--------+-----------------+--------------+-------------+
 
Table 2: Without Aspects vs With Cached Aspects (5000 aspects, 5000 times)
+----------------------------+--------+-----------------+---------------------+-------------+
| Measure Type               | Metric | Without Aspects | With Cached Aspects |  Difference |
+----------------------------+--------+-----------------+---------------------+-------------+
| From Start to End          | Time   |        1.2530 s |          132.5459 s | +131.2929 s |
| Boot Time (Kernel::init()) | Time   |        0.0000 s |            0.6516 s |   +0.6516 s |
| Class Loading Time         | Time   |        0.0002 s |            3.3913 s |   +3.3912 s |
| Method Call Time           | Time   |        1.2529 s |          128.5029 s | +127.2501 s |
| From Start to End          | Memory |         0.51 MB |            35.16 MB |   +34.65 MB |
| Boot Time (Kernel::init()) | Memory |         0.00 MB |            31.81 MB |   +31.81 MB |
| Class Loading Time         | Memory |         0.00 MB |             1.26 MB |    +1.26 MB |
| Method Call Time           | Memory |         0.51 MB |             2.09 MB |    +1.58 MB |
+----------------------------+--------+-----------------+---------------------+-------------+
 
 
 
.                    46 / 46 (100%)
 
Time: 10:52.754, Memory: 10.00 MB
 
OK (46 tests, 46 assertions)

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation 📝 Improvements or additions to documentation enhancement 🎆 New feature or request
Projects
None yet
Development

No branches or pull requests

1 participant