KDevelop PHP Performance Improvements

After moving my blog this is now the first post aggregated on planetkde.

It has been quite some time since my last contributions to KDevelop - I got motivated by working colleges who where starting to use other IDEs (phpStorm, eclipse) as they got annoyed by various bugs in KDevelop.

One big thing is performance - when working on larger projects during initial parsing things get laggy and slow. (eg. when opening code completion)
Our use case is koala framework + zend framework which consist of about 6500 php files.

Profiling showed that the main problem is the large number of included file - but luckily the DUChain already has an option to cache that - which I basically just activated.

Benchmarks

Ok, all fine - but what about actual numbers?

This graph shows time needed (in seconds) for initial parsing of ~6500 files. (lower is better)

This graph shows time needed (in seconds) for checking up to date of ~6500 files. (lower is better)

(Time is measured using duchainify, a small cli helper tool for kdevelop for testing parsing)

You'll see that for this use case this cache really brings a large performance boost!

This entry was posted in KDE, KDevelop by Niko Sams. Bookmark the permalink.

5 Thoughts on "KDevelop PHP Performance Improvements"

Rather stupid comment, is this cache enabled in the C/C++ parser? re-opening projects that are quite big (Qt for example) take ages, and in theory all the information should be already in the duchain, no?
@afiestas: Yes, the cache is enabled for C++, and C++ is much more complex than Php (especially for big projects)
Nice to see there is ongoing support for PHP in kdevelop - I use kdevelop more or less exclusively for this since good old Quanta died (tried eclipse, netbeans et al since then...).
Unfortunately, knowledge about kdevelop as a PHP IDE seems not very widespread, IMHO mostly because relevant plugins (debugger, upload...) are not packaged by Linux distributors.
That's amazing.

Back when I started developing on Windows, people told me that Visual Studio was the best IDE and that it just took time to get used to it. After month of daily usage, I know realise that the people who told me that just never used KDevelop before.

So now it rules C++, PHP and Python (and I think there's some Ruby support on the works). The only thing it misses for people to realise how astonishing KDevelop is is getting it packaged with KDE Windows.
I wonder if it would be hard to do... I have all the tools needed, I could try to make the port.
@plaristote: KDevelop on Windows works already, but indeed the biggest problem is getting the packaging right first. Personally, I did a lot to actually make KDevelop run and work on Windows lately, and at this point it's in relatively good shape. Now we need someone polishing it even more, and doing the packaging part and extending KDevelop more to make it user friendly on Windows (thinking of things like defaulting to the NMake Generator for CMake on Windows by default, etc.). I can't really drive this at the moment since I'm lacking time to do so.

So, by all means, any help is very welcome here!

Get in touch with us: techbase.kde.org/Getting_Started/Build/Windows/emerge -- and report back to kdevelop-devel@kde.org!

Leave a Reply

Your email address will not be published.

Github Activity

nsams commented on pull request koala-framework/kwc-newsletter#5

@nsams
nsams commented on pull request koala-framework/kwc-newsletter#5
Feb 22, 2018

bitte um abstimmung bin benjamin damit die bundles gleich strukturiert sind https://gitlab.vivid-planet.com/vivid/kwf-carlog-auth

nsams commented on issue koala-framework/koala-framework#736

@nsams
Feb 20, 2018

Yes, that is the correct fix, ajax requests timeout after 30 seconds by default. Now why the request is that slow is a completely different topic, …

nsams starred ionic-team/stencil

@nsams
Feb 19, 2018
ionic-team/stencil

A simple, reusable web component compiler

TypeScript 2.3k 5 issues need help Updated Feb 19

nsams commented on pull request koala-framework/koala-framework#728

@nsams
nsams commented on pull request koala-framework/koala-framework#728
Feb 15, 2018

des funktioniert dann nicht mehr

nsams commented on pull request koala-framework/kwc-newsletter#2

@nsams
nsams commented on pull request koala-framework/kwc-newsletter#2
Feb 15, 2018

bitte da keine leerzeile