Modified:
wiki/Container_1_1_PerformanceMetrics.wiki
Log:
Edited wiki page through web user interface.
Modified: wiki/Container_1_1_PerformanceMetrics.wiki
==============================================================================
--- wiki/Container_1_1_PerformanceMetrics.wiki (original)
+++ wiki/Container_1_1_PerformanceMetrics.wiki Wed Jul 30 10:31:08 2008
@@ -1,22 +1,27 @@
# Performance Metrics for Container v1.1 vs. spring, pico-container, and hard-coded access.
+=NOT READY YET - ONLY FORMATTED RIGHT - NEED 1.1 DATA=
+
Here is a quick performance table for different containers, including a "1st invocation" and an average for all following invocations. They are all run on the same machine (Macbook Pro 2.4Ghz Dual-Core circa 2006) with identical component loading.
Note: I'm a big fan of Tapestry5, and I'm very confused as to why t5's ioc container is so slow. I imagine I'm doing something wrong, but I haven't had a chance to ask HLS why I would find this performance.
-This test compared:
-|| Container name || Version || Configuration || Ratio to hard-coded ||
-|| Hard Coded || N/A || N/A || 1.0 ||
-|| Israfil Micro || 1.1 || early resolution || 10.0 ||
-|| Israfil Micro || 1.1 || early late resolution || 10.7 ||
-|| Pico Container || 2.1 || with cache || 23.2 ||
-|| Spring || 2.5.4 ||N/A || 26.3 ||
-|| Pico Container || 2.1 || without cache || 512.5 ||
-|| T5-IOC || 5.0.11 || N/A || 1719.5 ||
+Here's the list of containers, with rolled up averages relative to hard-coded. (Note, results in nanoseconds, with that resolution being attained by iterating the test 10,000,000 times. For loop cost factored in, sadly)
+
+|| *Container name* || *Version* || *Configuration* || *ns/1st call* || *1st call / hard-coded* || *ns/avg call* || *avg call / hard-coded* ||
+|| Hard Coded || N/A || N/A || 11 || 1.0 || 8 || 1.0 ||
+|| Israfil Micro || 1.0 || early resolution || 113 || 10.3 || 109 || 13.6 ||
+|| Israfil Micro || 1.0 || late resolution || 118 || 10.7 || 112 || 14.0 ||
+|| Pico Container || 2.1 || with cache|| 255 || 23.2 || 256 || 32.0 ||
+|| Spring || 2.5.4 ||N/A || 289 || 26.3 || 292 || 36.5 ||
+|| Pico Container || 2.1 || without cache || 5637 || 512.5 || 5825 || 728.1 ||
+|| T5-IOC || 5.0.11 || N/A || 18914 || 1719.5 || 17637 || 2204.6 ||
+
+Oddly enough, the call time of the first invocation is smaller (relative to hard-coded) than later calls, though you would think it wouldn't be. I think this is because the first call to the hard-coded version had a slightly higher cost compared to average cost of calling the hard-coded one. This plays out in the relative numbers, even though the absolute average call time is smaller
-The startup costs and first invocation for each container are as follows:
+The startup costs for each container are as follows, reported in milliseconds by necessity:
-|| *container/config* || *ms/startup* || *µs/query* || *ns/query* ||
+|| *container/config* || *ms/startup* ||
|| singleton || 2 || 0 || 11 ||
|| t5-ioc ||339 || 18 || 18914 ||
|| israfil micro early || 6 || 0 || 110 ||