Bug 88

Summary: Ipv4Address operator ==, !=, < should be inline for performance
Product: ns-3 Reporter: Gustavo J. A. M. Carneiro <gjcarneiro>
Component: networkAssignee: ns-bugs <ns-bugs>
Status: RESOLVED FIXED    
Severity: enhancement    
Priority: P3    
Version: pre-release   
Hardware: All   
OS: All   
Attachments: make critical Ipv4Address methods/operators inline

Description Gustavo J. A. M. Carneiro 2007-10-10 13:07:21 UTC
As seen in http://www.nsnam.org/bugzilla/attachment.cgi?id=76, Ipv4Address operators are consuming significant time in my OLSR simulations.

Making them inline improves a script of mine simulation time from 3 to 2.5 seconds.  I would attach a patch, but bugzilla is temporarily broken and won't let me.
Comment 1 Gustavo J. A. M. Carneiro 2007-10-10 13:19:38 UTC
hm.. I made a mistake in the previous measurements.  Correct tests follow:


gjc@spectrum:ns-3-olsr-swlan$ time ./build/optimized/utils/bench-olsr  --num-nodes 15
0:38.7298:0:38.7298
Average Delay: 2.93073 s
Packet Loss: 64.5603 %

real    0m11.236s
user    0m10.857s
sys     0m0.100s
gjc@spectrum:ns-3-olsr-swlan$ time ./build/optimized/utils/bench-olsr  --num-nodes 15
0:38.7298:0:38.7298
Average Delay: 2.82314 s
Packet Loss: 63.3327 %

real    0m15.627s
user    0m15.253s
sys     0m0.084s
gjc@spectrum:ns-3-olsr-swlan$ time ./build/optimized/utils/bench-olsr  --num-nodes 15
0:38.7298:0:38.7298
Average Delay: 2.92139 s
Packet Loss: 64.3521 %

real    0m12.926s
user    0m12.233s
sys     0m0.040s
gjc@spectrum:ns-3-olsr-swlan$ hg revert src/node/ipv4-address.{h,cc} 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ 
gjc@spectrum:ns-3-olsr-swlan$ time ./build/optimized/utils/bench-olsr  --num-nodes 15
0:38.7298:0:38.7298
Average Delay: 2.8314 s
Packet Loss: 63.4598 %

real    0m17.499s
user    0m16.717s
sys     0m0.096s
gjc@spectrum:ns-3-olsr-swlan$ time ./build/optimized/utils/bench-olsr  --num-nodes 15
0:38.7298:0:38.7298
Average Delay: 2.82491 s
Packet Loss: 63.0099 %

real    0m15.068s
user    0m14.749s
sys     0m0.068s
gjc@spectrum:ns-3-olsr-swlan$ time ./build/optimized/utils/bench-olsr  --num-nodes 15
0:38.7298:0:38.7298
Average Delay: 2.91977 s
Packet Loss: 64.2376 %

real    0m15.457s
user    0m14.805s
sys     0m0.096s


Average user time with patch (inline operators): 12.781 s
Average user time without patch: 15.424 s (+20%)
Comment 2 Gustavo J. A. M. Carneiro 2007-10-10 13:40:43 UTC
Created attachment 78 [details]
make critical Ipv4Address methods/operators inline
Comment 3 Mathieu Lacage 2007-10-11 00:23:37 UTC
ok for me.