lucenenet-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Elad Margalit (Jira)" <>
Subject [jira] [Comment Edited] (LUCENENET-640) Sequential IndexWriter performance in concurrent environments.
Date Fri, 07 Feb 2020 15:17:00 GMT


Elad Margalit edited comment on LUCENENET-640 at 2/7/20 3:16 PM:

Hi [~nightowl888],

I think [~ayende] faced same issue, 

take a look here[here|[]] 

was (Author: eladmarg):
Hi [~nightowl888],

I think [~ayende] faced same issue, 

take a look [here|[]]

> Sequential IndexWriter performance in concurrent environments.
> --------------------------------------------------------------
>                 Key: LUCENENET-640
>                 URL:
>             Project: Lucene.Net
>          Issue Type: Bug
>          Components: Lucene.Net Core
>    Affects Versions: Lucene.Net 4.8.0
>            Reporter: Mathias Henriksen
>            Priority: Major
>              Labels: performance
>             Fix For: Lucene.Net 4.8.0
>         Attachments: AssertFinalBug.jpg, IdentityWeakReferenceBug.jpg, Program.cs, overviewBug.jpg
>          Time Spent: 1h 10m
>  Remaining Estimate: 0h
> When creating Lucene.Net indices in parallel, sequential-like performance is experienced.
Profiling 8 concurrent IndexWriter instances writing in parallel shows that WeakIdentityMap::IdentityWeakReference::Equals
spends most time garbage collecting (94.91%) and TokenStream::AssertFinal (87.09% garbage
collecting) in my preliminary tests (see screenshots).
> The [WeakIdentityMap|]
implementation uses an IdentityWeakReference as key, which is implemented as a class. By inspection
of this class, it is merely a System.Runtime.InteropServices.GCHandle wrapper as can be seen
in the mono project, manually wrapping of this struct in a struct rather than a class - will
eliminate some of the immense amounts of garbage collection.

This message was sent by Atlassian Jira

View raw message