Results of running the compiled NX04_01.C malloc() test application. The code was compiled using "cl -GL -O2 nx04_01.c" using Microsoft Visual Studio 2008 Beta 2. ------------------------------------------------------------------------------------------------------------------------------------- Running directly on 64-bit Windows Vista on a quad-core 2.66 GHz Mac Pro. malloc() tests: 131993801 blocks of 1 bytes, 16 bytes block footprint, total allocation = 126 MB, 15491 ms elapsed, 108 ns per block. 87995609 blocks of 16 bytes, 24 bytes block footprint, total allocation = 1343 MB, 11263 ms elapsed, 123 ns per block. 33037614 blocks of 50 bytes, 64 bytes block footprint, total allocation = 1575 MB, 8346 ms elapsed, 250 ns per block. 18882557 blocks of 100 bytes, 113 bytes block footprint, total allocation = 1801 MB, 5523 ms elapsed, 287 ns per block. 8522401 blocks of 240 bytes, 251 bytes block footprint, total allocation = 1951 MB, 3417 ms elapsed, 399 ns per block. 508476 blocks of 4080 bytes, 4217 bytes block footprint, total allocation = 1978 MB, 1155 ms elapsed, 2270 ns per block. 32137 blocks of 65520 bytes, 66724 bytes block footprint, total allocation = 2008 MB, 125 ms elapsed, 3889 ns per block. VirtualAlloc() tests: 32296 blocks of 1 bytes, 66396 bytes block footprint, total allocation = 0 MB, 47 ms elapsed, 1455 ns per block. 32296 blocks of 16 bytes, 66396 bytes block footprint, total allocation = 0 MB, 47 ms elapsed, 1455 ns per block. 32296 blocks of 50 bytes, 66396 bytes block footprint, total allocation = 2 MB, 46 ms elapsed, 1424 ns per block. 32296 blocks of 100 bytes, 66396 bytes block footprint, total allocation = 3 MB, 46 ms elapsed, 1424 ns per block. 32296 blocks of 240 bytes, 66396 bytes block footprint, total allocation = 7 MB, 46 ms elapsed, 1424 ns per block. 32296 blocks of 4080 bytes, 66396 bytes block footprint, total allocation = 126 MB, 46 ms elapsed, 1424 ns per block. 32296 blocks of 65520 bytes, 66396 bytes block footprint, total allocation = 2018 MB, 47 ms elapsed, 1455 ns per block. VirtualAlloc() tests with write to first byte of block: 32296 blocks of 1 bytes, 66396 bytes block footprint, total allocation = 0 MB, 94 ms elapsed, 2910 ns per block. 32296 blocks of 16 bytes, 66396 bytes block footprint, total allocation = 0 MB, 94 ms elapsed, 2910 ns per block. 32296 blocks of 50 bytes, 66396 bytes block footprint, total allocation = 2 MB, 94 ms elapsed, 2910 ns per block. 32296 blocks of 100 bytes, 66396 bytes block footprint, total allocation = 3 MB, 93 ms elapsed, 2879 ns per block. 32296 blocks of 240 bytes, 66396 bytes block footprint, total allocation = 7 MB, 93 ms elapsed, 2879 ns per block. 32296 blocks of 4080 bytes, 66396 bytes block footprint, total allocation = 126 MB, 94 ms elapsed, 2910 ns per block. 32296 blocks of 65520 bytes, 66396 bytes block footprint, total allocation = 2018 MB, 93 ms elapsed, 2879 ns per block. ------------------------------------------------------------------------------------------------------------------------------------- Running directly on Windows XP virtualized by Virtual PC 2007 on 64-bit Windows Vista on a quad-core 2.66 GHz Mac Pro. Hardware virtualization in Virtual PC 2007 is ENABLED. malloc() tests: 133791945 blocks of 1 bytes, 16 bytes block footprint, total allocation = 128 MB, 20950 ms elapsed, 146 ns per block. 89107542 blocks of 16 bytes, 24 bytes block footprint, total allocation = 1360 MB, 16704 ms elapsed, 183 ns per block. 33447986 blocks of 50 bytes, 64 bytes block footprint, total allocation = 1595 MB, 9564 ms elapsed, 277 ns per block. 19113124 blocks of 100 bytes, 112 bytes block footprint, total allocation = 1823 MB, 8332 ms elapsed, 433 ns per block. 8623313 blocks of 240 bytes, 248 bytes block footprint, total allocation = 1974 MB, 6850 ms elapsed, 787 ns per block. 522625 blocks of 4080 bytes, 4103 bytes block footprint, total allocation = 2034 MB, 4767 ms elapsed, 9119 ns per block. 32638 blocks of 65520 bytes, 65700 bytes block footprint, total allocation = 2039 MB, 561 ms elapsed, 17188 ns per block. VirtualAlloc() tests: 32666 blocks of 1 bytes, 65644 bytes block footprint, total allocation = 0 MB, 240 ms elapsed, 7346 ns per block. 32666 blocks of 16 bytes, 65644 bytes block footprint, total allocation = 0 MB, 261 ms elapsed, 7989 ns per block. 32666 blocks of 50 bytes, 65644 bytes block footprint, total allocation = 2 MB, 230 ms elapsed, 7040 ns per block. 32666 blocks of 100 bytes, 65644 bytes block footprint, total allocation = 3 MB, 240 ms elapsed, 7346 ns per block. 32666 blocks of 240 bytes, 65644 bytes block footprint, total allocation = 7 MB, 211 ms elapsed, 6459 ns per block. 32666 blocks of 4080 bytes, 65644 bytes block footprint, total allocation = 127 MB, 250 ms elapsed, 7653 ns per block. 32666 blocks of 65520 bytes, 65644 bytes block footprint, total allocation = 2041 MB, 220 ms elapsed, 6734 ns per block. VirtualAlloc() tests with write to first byte of block: 32666 blocks of 1 bytes, 65644 bytes block footprint, total allocation = 0 MB, 521 ms elapsed, 15948 ns per block. 32666 blocks of 16 bytes, 65644 bytes block footprint, total allocation = 0 MB, 520 ms elapsed, 15918 ns per block. 32666 blocks of 50 bytes, 65644 bytes block footprint, total allocation = 2 MB, 551 ms elapsed, 16867 ns per block. 32666 blocks of 100 bytes, 65644 bytes block footprint, total allocation = 3 MB, 541 ms elapsed, 16561 ns per block. 32666 blocks of 240 bytes, 65644 bytes block footprint, total allocation = 7 MB, 511 ms elapsed, 15642 ns per block. 32666 blocks of 4080 bytes, 65644 bytes block footprint, total allocation = 127 MB, 551 ms elapsed, 16867 ns per block. 32666 blocks of 65520 bytes, 65644 bytes block footprint, total allocation = 2041 MB, 510 ms elapsed, 15612 ns per block. ------------------------------------------------------------------------------------------------------------------------------------- Running directly on Windows XP virtualized by Virtual PC 2007 on 64-bit Windows Vista on a quad-core 2.66 GHz Mac Pro. Hardware virtualization in Virtual PC 2007 is NOT ENABLED. malloc() tests: 133791941 blocks of 1 bytes, 16 bytes block footprint, total allocation = 128 MB, 19908 ms elapsed, 139 ns per block. 89107539 blocks of 16 bytes, 24 bytes block footprint, total allocation = 1360 MB, 15393 ms elapsed, 169 ns per block. 33447985 blocks of 50 bytes, 64 bytes block footprint, total allocation = 1595 MB, 8181 ms elapsed, 237 ns per block. 19113123 blocks of 100 bytes, 112 bytes block footprint, total allocation = 1823 MB, 7120 ms elapsed, 370 ns per block. 8623313 blocks of 240 bytes, 248 bytes block footprint, total allocation = 1974 MB, 5728 ms elapsed, 658 ns per block. 522625 blocks of 4080 bytes, 4103 bytes block footprint, total allocation = 2034 MB, 3565 ms elapsed, 6819 ns per block. 32638 blocks of 65520 bytes, 65700 bytes block footprint, total allocation = 2039 MB, 390 ms elapsed, 11949 ns per block. VirtualAlloc() tests: 32666 blocks of 1 bytes, 65644 bytes block footprint, total allocation = 0 MB, 250 ms elapsed, 7653 ns per block. 32666 blocks of 16 bytes, 65644 bytes block footprint, total allocation = 0 MB, 290 ms elapsed, 8877 ns per block. 32666 blocks of 50 bytes, 65644 bytes block footprint, total allocation = 2 MB, 270 ms elapsed, 8265 ns per block. 32666 blocks of 100 bytes, 65644 bytes block footprint, total allocation = 3 MB, 251 ms elapsed, 7683 ns per block. 32666 blocks of 240 bytes, 65644 bytes block footprint, total allocation = 7 MB, 260 ms elapsed, 7959 ns per block. 32666 blocks of 4080 bytes, 65644 bytes block footprint, total allocation = 127 MB, 240 ms elapsed, 7346 ns per block. 32666 blocks of 65520 bytes, 65644 bytes block footprint, total allocation = 2041 MB, 241 ms elapsed, 7377 ns per block. VirtualAlloc() tests with write to first byte of block: 32666 blocks of 1 bytes, 65644 bytes block footprint, total allocation = 0 MB, 440 ms elapsed, 13469 ns per block. 32666 blocks of 16 bytes, 65644 bytes block footprint, total allocation = 0 MB, 431 ms elapsed, 13193 ns per block. 32666 blocks of 50 bytes, 65644 bytes block footprint, total allocation = 2 MB, 461 ms elapsed, 14112 ns per block. 32666 blocks of 100 bytes, 65644 bytes block footprint, total allocation = 3 MB, 440 ms elapsed, 13469 ns per block. 32666 blocks of 240 bytes, 65644 bytes block footprint, total allocation = 7 MB, 491 ms elapsed, 15030 ns per block. 32666 blocks of 4080 bytes, 65644 bytes block footprint, total allocation = 127 MB, 421 ms elapsed, 12887 ns per block. 32666 blocks of 65520 bytes, 65644 bytes block footprint, total allocation = 2041 MB, 440 ms elapsed, 13469 ns per block. -------------------------------------------------------------------------------------------------------------------------------------