Importance of varchar length in MySQL table

There’s one possible performance impact: in MySQL, temporary tables and MEMORY tables store a VARCHAR column as a fixed-length column, padded out to its maximum length. If you design VARCHAR columns much larger than the greatest size you need, you will consume more memory than you have to. This affects cache efficiency, sorting speed, etc.

What is the performance cost of having a virtual method in a C++ class?

I ran some timings on a 3ghz in-order PowerPC processor. On that architecture, a virtual function call costs 7 nanoseconds longer than a direct (non-virtual) function call. So, not really worth worrying about the cost unless the function is something like a trivial Get()/Set() accessor, in which anything other than inline is kind of wasteful. … Read more

Using lambda expressions for event handlers

There are no performance implications since the compiler will translate your lambda expression into an equivalent delegate. Lambda expressions are nothing more than a language feature that the compiler translates into the exact same code that you are used to working with. The compiler will convert the code you have to something like this: public … Read more

LINQ Ring: Any() vs Contains() for Huge Collections

Contains() is an instance method, and its performance depends largely on the collection itself. For instance, Contains() on a List is O(n), while Contains() on a HashSet is O(1). Any() is an extension method, and will simply go through the collection, applying the delegate on every object. It therefore has a complexity of O(n). Any() … Read more

Why is string concatenation faster than array join?

Browser string optimizations have changed the string concatenation picture. Firefox was the first browser to optimize string concatenation. Beginning with version 1.0, the array technique is actually slower than using the plus operator in all cases. Other browsers have also optimized string concatenation, so Safari, Opera, Chrome, and Internet Explorer 8 also show better performance … Read more

C++ performance challenge: integer to std::string conversion

#include <string> const char digit_pairs[201] = { “00010203040506070809” “10111213141516171819” “20212223242526272829” “30313233343536373839” “40414243444546474849” “50515253545556575859” “60616263646566676869” “70717273747576777879” “80818283848586878889” “90919293949596979899” }; std::string& itostr(int n, std::string& s) { if(n==0) { s=”0″; return s; } int sign = -(n<0); unsigned int val = (n^sign)-sign; int size; if(val>=10000) { if(val>=10000000) { if(val>=1000000000) size=10; else if(val>=100000000) size=9; else size=8; } else { … Read more

Multiple INSERT statements vs. single INSERT with multiple VALUES

Addition: SQL Server 2012 shows some improved performance in this area but doesn’t seem to tackle the specific issues noted below. This should apparently be fixed in the next major version after SQL Server 2012! Your plan shows the single inserts are using parameterised procedures (possibly auto parameterised) so parse/compile time for these should be … Read more