Can compiler optimization introduce bugs?

Compiler optimizations can introduce bugs or undesirable behaviour. That’s why you can turn them off. One example: a compiler can optimize the read/write access to a memory location, doing things like eliminating duplicate reads or duplicate writes, or re-ordering certain operations. If the memory location in question is only used by a single thread and … Read more

foldl is tail recursive, so how come foldr runs faster than foldl?

Welcome to the world of lazy evaluation. When you think about it in terms of strict evaluation, foldl looks “good” and foldr looks “bad” because foldl is tail recursive, but foldr would have to build a tower in the stack so it can process the last item first. However, lazy evaluation turns the tables. Take, … Read more

When is optimisation premature?

Don Knuth started the literate programming movement because he believed that the most important function of computer code is to communicate the programmer’s intent to a human reader. Any coding practice that makes your code harder to understand in the name of performance is a premature optimization. Certain idioms that were introduced in the name … Read more

Deflate compression browser compatibility and advantages over GZIP

UPDATE: Browsers have been dropping support for raw deflate. zOompf has completed some very thorough research on this very topic here. Unfortunately, it appears that raw deflate is NOT safe to use. Check http://www.vervestudios.co/projects/compression-tests/results for more results. Here are the browsers that have been tested: /* Browser DEFLATE ZLIB */ XP Internet Explorer 6 PASS … Read more

How to optimize webpack’s build time using prefetchPlugin & analyse tool?

Yeah, The pre-fetch plugin documentation is pretty much non-existent. After figuring it out for myself, its pretty simple to use, and there’s not much flexibility to it. Basically, it takes two arguments, the context (optional) and the module path (relative to context). The context in your case would be /absolute/path/to/your/project/node_modules/react-transform-har/ assuming that the tilde in … Read more

How to calculate percentage improvement in response time for performance testing

There are two ways to interpret “percentage improvement in response time”. One is the classic and ubiquitous formula for computing a percentage change in a data point from an old value to a new value, which looks like this: (new – old)/old*100% So for your case: (799 – 15306)/15306*100% = -94.78% That means the new … Read more

How do you test running time of VBA code?

Unless your functions are very slow, you’re going to need a very high-resolution timer. The most accurate one I know is QueryPerformanceCounter. Google it for more info. Try pushing the following into a class, call it CTimer say, then you can make an instance somewhere global and just call .StartCounter and .TimeElapsed Option Explicit Private … Read more

Logger slf4j advantages of formatting with {} instead of string concatenation

It is about string concatenation performance. It’s potentially significant if your have dense logging statements. (Prior to SLF4J 1.7) But only two parameters are possible Because the vast majority of logging statements have 2 or fewer parameters, so SLF4J API up to version 1.6 covers (only) the majority of use cases. The API designers have … Read more

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)