php-aop icon indicating copy to clipboard operation
php-aop copied to clipboard

Performance Benchmarks

Open WalterWoshid opened this issue 2 years ago • 4 comments

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: https://github.com/okapi-web/php-aop/issues/53

WalterWoshid avatar Sep 16 '23 15:09 WalterWoshid

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 avatar Sep 17 '23 19:09 WalterWoshid

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 avatar Sep 17 '23 19:09 WalterWoshid

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 avatar Sep 17 '23 19:09 WalterWoshid

~~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)

WalterWoshid avatar Sep 17 '23 19:09 WalterWoshid