Performance of analyzer (Freeling 4.1/4.2) in Windows

Submitted by jpueyo on Sun, 08/16/2020 - 18:13

I am trying to move from Freeling 3.1 to version 4.1 (or 4.2). I was able to compile 4.1 and run it in linux (Ubuntu 20.04) without problems and the performance is quite similar to version 3.1.

However, I tried to run the compiled 4.1 / 4.2 versions in Windows 10 and the performance is dramatically slower compared to version 3.1. A simple sentence takes 5 seconds to analyze with version 3.1 (or 4.1 in linux) while with versions 4.1 / 4.2 in Windows take more than 3 minutes. I have also compiled myself both Freeling 4.1 and 4.2  in Windows (x86 and win64) but I am still getting the same performance issues.

Any ideas? Has anyone else encountered this problem?

The first sentence is always slower, because it needs to load all dictionaries and grammars.

You must evaluate the analysis speed seeing how much it takes to analyze any sentece entered after the first sentence has been solved.

Regarding the difference with regard to 3.1, it is due to the fact that 4.x has more modules, some of them neural with a lot of parameters, that take longer time to load.

However, the "analyze" program is just a demo, which loads everything. You can customize which modules are loaded changing the configuration file, thus achieving a faster loading time.

In any case, FreeLing is developed in and for linux.  Windows ports are provided for convenience, but for some reason are usually slower (maybe the compiler?). I would not use them in a real-wold production scenario.



Thanks Lluis for your explanation. I did evaluate 4.1 and 4.2 in Windows on larger texts before writing to the forum, and the slower performance remained the same during the entire processing (a long text takes more than 30 minutes in Windows but 3 minutes in linux or in 3.1 for Windows). It is not about comparing it with 3.1 but with 4.1 in linux. I understand that the development focus is in linux and you don't support Windows (I am pretty sure its not the Freeling code's fault but the compiler's). I just asked because 3.1 compiles and runs perfectly in Windows (using MSVC 10). It seems that the new strategy of compiling 4.1 with cmake and MSVC 15 in Windows is taking its toll in perfomance. I have no experience with MSVC but perhaps someone here will come up with some MSVC compiler's options that solve this problem in Windows.