COJAC, A Numerical Problem Sniffer

Java Logo

During my bachelor at the HES-SO University of applied sciences in Fribourg, I worked on a Java project, COJAC. COJAC is a tool performing On-the-fly code instrumentation to help uncover numerical problems with integer (overflows) and floating point (smearing, cancellation, infinity, NaN) arithmetic. Yesterday, Dr Dobbs published an article by one of my professor Frédéric [...]



Boost intrusive_ptr : faster shared pointer

Boost Logo

This post will present the Boost intrusive_ptr and its usage in C++ programming. Recently, I took some time to optimize the parsing performances of the EDDI Compiler. The parsing phase creates a lot of nodes to fill the Abstract Syntax Tree. One of the way I found was to replace some shared_ptr by some intrusive_ptr [...]



eddic 0.5.1 : Better assembly generation and faster parsing

I’m very pleased to release the version 0.5.1 of the EDDI Compiler. It makes now a long time since the last version of eddic, but I started again working frequently on it. This version doesn’t add any new feature to the language, but there are a lot of improvements in the compiler itself. First of [...]



Diploma Thesis : Inlining Assistance for large-scale object-oriented applications

Results on CLang

One month ago, my diploma thesis has been accepted and I got my Bachelor of Science in Computer Science. I made my diploma thesis at Lawrence Berkeley National Laboratory, Berkeley, California. I was in the team responsible of the developmenet of the ATLAS Software for the LHC in Cern. The title of my thesis is [...]



How to profile C++ application with Callgrind / KCacheGrind

first-view

I have shown before how to profile a C++ application using the Linux perf tools.  In this post, we will see how to profile the same kind of application using Callgrind. Callgrind is a tool in part of the Valgrind toolchain. It is running in Valgrind framework. The principle is not the same. When you use Callgrind [...]



How to profile your applications using the Linux perf tools

When an application encounters some performance issues, we have to find the code that causes the problem to optimize only what really matters. To find the code we have to optimize, the profilers are really useful. In this post, we’ll use the Linux perf tools to profile a simple C++ application. The perf tools are [...]



Solve “File param is missing” problem of W3 Total Cache

Wordpress Logo

As you may have seen, my website had not CSS these last days. This was due to a bug in the W3 Total Cache plugin of WordPress. The minified CSS file wasn’t accessible. When we tried to access it from the site, there was an error : “File param is missing” There is an easy [...]



My Java Benchmarks on GitHub

Duke Cowboy Java

Hi, I’ve created a new github repository for my Java Benchmarks : java-benchmarks From now all my benchmarks will be pushed to this repository. This is more simple for me to manage and more secure also. At this time, there is seven benchmarks on the repository : Closest Pair Search Benchmark : A benchmark to [...]



Java Synchronization (Mutual Exclusion) Benchmark

Duke Cowboy Java

I’ve created another benchmark. This time, I’ve benchmarked the different ways of synchronizing a little code using mutual exclusion on this code. The code to protect will be very simple. It’s a simple counter : The critical section, if not protected with synchronization system, will not function properly due to possible interleavings (read the article [...]



Java File Copy Benchmark Updates (once again)

Duke Java Logo

I’ve made another updates to my file copy benchmark. First of all, I used my little utility class to automatically create the graphs. The graph are a little less clean, but I spare a lot of time not creating them myself. Then, I’ve also made some corrections on the code : I”ve used a buffer [...]