Dawid,

Did you test searching in the project?

If you see my message in this same thread from October last year, I noticed
significant performance hit on search tasks if I remove the h2 cache.

Loading the complete h2 db in memory is an interesting experiment that
worth trying.

Greetings,
Kaloyan


On Sun, Jun 8, 2014 at 9:39 PM, Dawid Pakuła <zu...@w3des.net> wrote:

> Hi,
>
> again me
>
> I modified php performance tests bundle (hardcode ZF location + enable all
> tests from ProjectSuite):
> Patched DLTK - my github indexing branch
> Original DLTK - dltk master branch
> Patched PDT - pdt master + https://git.eclipse.org/r/#/c/28183/
>
> Test machine: MBP 17” , OSX 10.9.3, 12GB RAM, SSD, Oracle Java 1.7u55
> CMD: rm -rf ~/.perf_results/ && mvn clean install -o
>
> In general test results are comparable, sometimes faster is first,
> sometimes second:
>
> Patched PDT + Patched DLTK :
>   Test Time: 39.651s
>   Total time: 57.579s
>   Memory: 84M/1110M
>
> Patched PDT + Original DLTK:
>   Test Time: 40.281s
>   Total time: 58.762s
>   Memory: 83M/1109M
>
> Similar results are for standard PDT tests, but.
>
> Even betters look any profiler output:
> 1. Open eclipse with PDT
> 2. Import any large project
> 3. Enable all PDT features (folding, highlighting etc..)
> 4. Open 1k line file
> 5. Start working on file
> 6. Connect any profiler (JVM monitor, Netbeans, YourKit, jProfiler what
> ever) and look on live results:
> 7. Less cpu usage, with modified DLTK
>
> Please review ;)
>
> I think, that later, instead of using current h2cache methodology (load
> all, then manually iterate hash maps), we can try run second h2 with
> in-memory mode ( copy disk database into memory database on startup).
>
> Sorry for spam and my english :P
>
> --
> Dawid Pakuła
> +48 795 996 064
>
>
> From: Jacek Pospychała jacek.pospych...@gmail.com
> Reply: PDT Developers pdt-dev@eclipse.org
>
> Date: 8 czerwca 2014 at 08:56:09
> To: PDT Developers pdt-dev@eclipse.org
> Subject:  Re: [pdt-dev] H2Cache questions
>
> great work Dawid!
> so does it mean that this h2cache is useless? Maybe now content-assist
> just shows less matches?
> It'd be great to see a performance test that exhibits the difference
> before and after applying your changes.
>
> On Sun, Jun 8, 2014 at 4:59 AM, Dawid Pakuła <zu...@w3des.net> wrote:
> > Hi,
> >
> > I made some Java and SQL optimization:
> > * Indexes
> > * Replace subquery by inner joins
> > * Remove 1=1 from where ;)
> > * Tweaks on H2ConnectionFactory
> >
> > Now on large project in my test environment, h2cache is not required. For
> > me, everything is faster, less memory usage.
> >
> > Here is my experiment:
> >
> https://github.com/zulus/dltk.core/commit/5be4dc62ffed6c19a431b91915c1b9010c7363bb
> >
> > How I’m testing:
> >
> > 2 large Symfony 2 projects in workspace
> > Enable all highlighters
> > Open 2k file with many nested call
> > Format your file , next run CA
> > Check your profiler ;)
> >
> > Advantages:
> >
> > faster eclipse startup !
> > Open PHP type always working (without “wait for indexer”)
> >
> > Before I send a patch to bugzilla, I have to perform some code cleanup. I
> > also see two other points for optimization in h2 indexer.
> >
> > --
> > Dawid Pakuła
> > +48 795 996 064
> >
> > From: Kaloyan Raev kaloya...@zend.com
> > Reply: PDT Developers pdt-dev@eclipse.org
> > Date: 23 października 2013 at 09:30:15
> > To: PDT Developers pdt-dev@eclipse.org
> > Subject: Re: [pdt-dev] H2Cache questions
> >
> > The test I ran yesterday for only for importing huge existing project in
> the
> > workspace. There is a search operation for each file before it is indexed
> > (to avoid indexing the same file twice). In this case the h2 cache is
> indeed
> > an overhead because most of the time the searched file isn't available
> > neither in the h2 cache, nor in the h2 db.
> >
> > Today, I ran an additional test - I searched for a method reference in
> this
> > same huge project. Well, without the cache this operation is 3 times
> slower.
> > My system is with SSD. I guess that on HDD it will be even more slower.
> >
> > So, it's seems that the h2 cache really optimizes search operations.
> >
> > Kaloyan
> >
> >
> > On Tue, Oct 22, 2013 at 6:35 PM, Alexey Panchenko <
> alex.panche...@gmail.com>
> > wrote:
> >>
> >> Hi Kaloyan,
> >>
> >> How often does your performance test execute search operations? what
> >> operations are executed at all in the test?
> >>
> >> I afraid this indexer at the moment is used only by PDT, so I don't have
> >> any performance data.
> >>
> >> Regards,
> >> Alex
> >>
> >>
> >> On Tue, Oct 22, 2013 at 8:59 PM, Kaloyan Raev <kaloya...@zend.com>
> wrote:
> >>>
> >>> Hi again,
> >>>
> >>> I did a quick experiment with removing H2Cache. My performance tests
> show
> >>> slight improvement without this cache.
> >>>
> >>> Alex, I'll be curious to hear if it's the same in your adopter's
> product.
> >>> Here is a commit to cherry pick:
> >>>
> https://github.com/kaloyan-raev/dltk.core/commit/e8bfa12aa5408341d230c57530474db281ef132c
> >>>
> >>> Greetings,
> >>> Kaloyan
> >>>
> >>>
> >>> On Mon, Oct 21, 2013 at 10:10 AM, Kaloyan Raev <kaloya...@zend.com>
> >>> wrote:
> >>>>
> >>>> Hi Alex,
> >>>>
> >>>> The same thoughts crossed my mind when I worked on improving the
> >>>> performance in Zend Studio a couple of months ago.
> >>>>
> >>>> H2Cache is a set of maps with strong references, which makes it really
> >>>> look more like an in-memory copy of the h2 db, rather than a cache.
> Over
> >>>> time, I suspect, this may cause memory consumption problems.
> >>>>
> >>>> I suppose that the H2Cache was introduced in the past, because of some
> >>>> inefficiencies in the h2 db schema - remember eclip.se/415137. But
> now, when
> >>>> the necessary index is added to the schema, the benefits of H2Cache
> are not
> >>>> really visible.
> >>>>
> >>>> One of the idea in my todo list for performance optimizations is
> indeed
> >>>> to try removing the H2Cache and measure the impact. Unfortunately, I
> was
> >>>> distracted from the performance topic with other things, but I hope
> I'll be
> >>>> back on it very soon.
> >>>>
> >>>> Greetings,
> >>>> Kaloyan
> >>>>
> >>>>
> >>>> On Sat, Oct 19, 2013 at 10:13 AM, Alexey Panchenko
> >>>> <alex.panche...@gmail.com> wrote:
> >>>>>
> >>>>> Hi PDT-team,
> >>>>>
> >>>>> I have some questions regarding this class
> >>>>>
> >>>>>
> >>>>>
> http://git.eclipse.org/c/dltk/org.eclipse.dltk.core.git/log/core/plugins/org.eclipse.dltk.core.index.sql.h2/src/org/eclipse/dltk/internal/core/index/sql/h2/H2Cache.java
> >>>>>
> >>>>> which was contributed some time ago by Michael and committed by Roy.
> >>>>>
> >>>>> As I understand the code, it looks like *all* the data from SQL
> >>>>> database is loaded into this class and then updates happen to both
> the
> >>>>> in-memory copy and the underlying SQL database.
> >>>>> For me, that effectively compromises the SQL database, as the same
> >>>>> result could be reached with eventually saving data to file using
> java
> >>>>> serialization.
> >>>>>
> >>>>> So, I am curious of the following:
> >>>>> - how much memory does it use?
> >>>>> - is it supposed to be a cache (and contain recently used data) or a
> >>>>> full in-memory copy?
> >>>>> - how much does it improve the performance? Can the same effect be
> >>>>> reached in other ways?
> >>>>>
> >>>>> Thanks,
> >>>>> Alex
> >>>>>
> >>>>> _______________________________________________
> >>>>> pdt-dev mailing list
> >>>>> pdt-dev@eclipse.org
> >>>>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
> >>>>>
> >>>>
> >>>
> >>>
> >>> _______________________________________________
> >>> pdt-dev mailing list
> >>> pdt-dev@eclipse.org
> >>> https://dev.eclipse.org/mailman/listinfo/pdt-dev
> >>>
> >>
> >>
> >> _______________________________________________
> >> pdt-dev mailing list
> >> pdt-dev@eclipse.org
> >> https://dev.eclipse.org/mailman/listinfo/pdt-dev
> >>
> >
> > _______________________________________________
> > pdt-dev mailing list
> > pdt-dev@eclipse.org
> > https://dev.eclipse.org/mailman/listinfo/pdt-dev
> >
> >
> > _______________________________________________
> > pdt-dev mailing list
> > pdt-dev@eclipse.org
> > https://dev.eclipse.org/mailman/listinfo/pdt-dev
> >
> _______________________________________________
> pdt-dev mailing list
> pdt-dev@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>
>
> _______________________________________________
> pdt-dev mailing list
> pdt-dev@eclipse.org
> https://dev.eclipse.org/mailman/listinfo/pdt-dev
>
>
_______________________________________________
pdt-dev mailing list
pdt-dev@eclipse.org
https://dev.eclipse.org/mailman/listinfo/pdt-dev

Reply via email to