There's also option 3)

Pre-fault the mmap()ed region in the file thread upon dictionary
initialization.
On Linux at least, that may give you better behaviour than malloc() + read()
in the event of memory pressure.

Cheers
Chris

On Thu, Oct 22, 2009 at 1:39 PM, Evan Stade <est...@chromium.org> wrote:

>
> Hi all,
>
> At its last meeting the jank task force discussed improving
> responsiveness of the spellchecker but we didn't come to a solid
> conclusion so I thought I'd bring it up here to see if anyone else has
> opinions. The main concern is that we don't block the IO thread on
> file access. To this end, I recently moved initialization of the
> spellchecker from the IO thread to the file thread. However, instead
> of reading in the spellchecker dictionary in one solid chunk, we
> memory-map it. Then later we check individual words on the IO thread,
> which will be slow since the dictionary starts off effectively
> completely paged out. The proposal is that we read in the dictionary
> at spellchecker intialization instead of memory mapping it.
>
> Memory mapping pros:
> - possibly uses less overall memory, depending on the structure of the
> dictionary and the usage pattern of the user.
> - <strike>loading the dictionary doesn't block for a long
> time</strike> this one no longer occurs either way due to my recent
> refactoring
>
> Reading it all at once pros:
> - costly disk accesses are kept to the file thread (excepting future
> memory paging)
> - overall disk access time is probably lower (since we can read in the
> dict in one chunk)
>
> For reference, the English dictionary is about 500K, and most
> dictionaries are under 2 megs, some (such as Hungarian) are much
> higher, but no dictionary is over 10 megs.
>
> Opinions?
>
> -- Evan Stade
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
Chromium Developers mailing list: chromium-dev@googlegroups.com 
View archives, change email options, or unsubscribe: 
    http://groups.google.com/group/chromium-dev
-~----------~----~----~----~------~----~------~--~---

Reply via email to