Are you telling me that I'm a layer?
No! I'm saying that you are mistaken. That your benchmark is flawed and as a consequence you are comparing apples and oranges; and on that basis, you are adding 2+2 and getting 3 1.5
It's quite simple. You have a cost for Thread::Queue (call it A). You have an additional cost for Thread::Queue::Any (namely Storable), call that B.
A can never be greater than A+B.
Unless B is negative; in which case you have discovered the programming equivalent of perpectual motion!
Something is afoot. But you're seeing it as a hand or an elbow or some such, because your results do not make sense. I cannot reproduce your results; nor understand how you could be getting them.
I'm not calling you a liar. I'm suggesting to you that when the results seem too good (or too bad) to be true; they usually are. And cautioning you to look very closely at what your code is actually doing.
Examine what is said, not who speaks -- Silence betokens consent -- Love the truth but pardon error.
"Science is about questioning the status quo. Questioning authority".
In the absence of evidence, opinion is indistinguishable from prejudice.
|