Bug 901 - Optimize Mac48Address < != and ==
Optimize Mac48Address < != and ==
Status: RESOLVED FIXED
Product: ns-3
Classification: Unclassified
Component: network
ns-3-dev
All All
: P5 enhancement
Assigned To: ns-bugs
:
Depends on:
Blocks:
  Show dependency treegraph
 
Reported: 2010-04-29 09:55 EDT by Gustavo J. A. M. Carneiro
Modified: 2010-07-21 09:35 EDT (History)
2 users (show)

See Also:


Attachments
patch (2.24 KB, patch)
2010-04-29 09:55 EDT, Gustavo J. A. M. Carneiro
Details | Diff
benchmark (1.04 KB, patch)
2010-04-29 09:56 EDT, Gustavo J. A. M. Carneiro
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Gustavo J. A. M. Carneiro 2010-04-29 09:55:54 EDT
Created attachment 853 [details]
patch

Mac48Address operators can be greatly optimized by always using memcmp and making them inline.  Here's a micro-benchmark:

gjc@dark-tower:ns-3-dev$ time ./build/optimized/utils/bench-mac48 1000000000

real	0m14.926s
user	0m14.810s
sys	0m0.020s
gjc@dark-tower:ns-3-dev$ time ./build/optimized/utils/bench-mac48 1000000000

real	0m14.921s
user	0m14.820s
sys	0m0.030s
gjc@dark-tower:ns-3-dev$ time ./build/optimized/utils/bench-mac48 1000000000

real	0m14.893s
user	0m14.820s
sys	0m0.010s


============== with the patch ===========

gjc@dark-tower:ns-3-dev$ time ./build/optimized/utils/bench-mac48 1000000000

real	0m1.136s
user	0m1.120s
sys	0m0.000s
gjc@dark-tower:ns-3-dev$ time ./build/optimized/utils/bench-mac48 1000000000

real	0m1.146s
user	0m1.140s
sys	0m0.000s
gjc@dark-tower:ns-3-dev$ time ./build/optimized/utils/bench-mac48 1000000000

real	0m1.136s
user	0m1.130s
sys	0m0.000s
Comment 1 Gustavo J. A. M. Carneiro 2010-04-29 09:56:48 EDT
Created attachment 854 [details]
benchmark
Comment 2 Gustavo J. A. M. Carneiro 2010-06-20 11:42:03 EDT
Ping?  This seems like a no-brainer: clear speedup, small patch...
Comment 3 Craig Dowell 2010-06-20 13:04:28 EDT
+1
Comment 4 Tom Henderson 2010-07-21 09:35:29 EDT
changeset 406385ce683c