ITQuants blog

Author: Created: 2/17/2012 1:03 PM RssIcon
My personal blog on ITQuants
By Philippe Bonneau on 2/14/2013 5:26 PM

When developing an executable, there are several solutions to follow the memory consumption on a process. A third party performance monitor could be used in order to store the information and follow the memory growth on the time. I know some like Sysload, provided by Orsyp.

Another solution is to dump the memory used at different steps of the process in some log files and using this log files to make some statistics.

By Philippe Bonneau on 1/30/2013 7:57 PM
I forgot to give the code used in the precedent webservice sample (Calling a secured webservice in Sophis Risque). These lines make the conversion and release the memory:
By Philippe Bonneau on 1/17/2013 3:02 PM

In some cases, it is not possible to add very easily unicity check using a key on an index. For example, when conditions have to be used and that the unicity concerns only some records and not all.

By Philippe Bonneau on 1/10/2013 4:48 PM

It's one of my best usual case: people are coming to me to see what happened when some server process on production is frozen. Of course, even if logs are written and dumped somewhere, in most cases, they are not enough to detect what happens really.

The same scenario occurs when an access violation is followed by a crash of the process, when we need a post-mortem analysis.

Everybody could tell me that we just have to write such a treatment in C# or Java to get the call stack at this moment, but the subject of this post is not what development language to use but what to do when something like that occurs on a production server.

By Philippe Bonneau on 1/7/2013 6:26 PM

An easy way to resolve it is to use tis to increase the maximum heap size by using JVM options -Xmx512M. This will immediately solve your OutOfMemoryError.

For example, using the following command with the XSLT processor (Saxon Java):

java -Xms1024m -Xmx1024m -jar saxon9he.jar -s:source2.xml -xsl:query.xsl -o:ids2.txt


By Philippe Bonneau on 1/7/2013 3:16 PM

Intel Inspector is a C++ development tool that can be used to detect memory leaks and corruption.

Using this tool and when trying to detect memory leaks in our library, which uses the Misys Sophis toolkit, a lot of memory leaks are found, due to the fact that memory cache used by Sophis or our toolkit library are not correctly released: about 4000 are displayed after analysis. Using existing filters provided by the tool is not sufficient in order to detect which are relevant or not.

The subject of this post is then to provide methods which permit to filter memory leaks which are not due to a cache or static data allocated in the loaded dll's.

By Philippe Bonneau on 11/30/2012 2:37 PM

On the server side, several types of server, agreed in most cases by the Corporate architect, are used:

 - IIS + .Net
 - Websphere + Java

 - ....

 Depending of the type of webservers, the implementation in Sophis Risque, in C++, can be done easily or not. This post will describe the development done to access a secured webservice deployed on a Websphere webservice.

By Philippe Bonneau on 11/9/2012 5:55 PM

In most cases, the error made by the developer when changing a lot of data on a table is to forget the (re)generation of the index. Such an error will degrade the performance of all queries made during the day with indexes generated automatically during the night.

By Philippe Bonneau on 11/8/2012 1:22 PM

Using the CSRCustomMenu class gives the opportunity for the developer to control at least the behaviour of the items and the type of the internal variable used for storing the information. The subject of this entry is to detail the virtual methods which have to be overloaded in order to control the type of the variable.

By Philippe Bonneau on 10/10/2012 2:29 PM

Imagine that the instrument dialog was overloaded by toolkit, and that the sicovam is required to make some SQL query when opening the insturment dialog. If there is no test on the fact that the instrument is displayed in audit mode, this will certainly fail since the sicovam given by the CSRInstrument will correspond to the "new" sicovam and not the one used in current mode.

Search blog