Live data from Hacker News

Effectively Managing Memory at Gmail Scale

html5rocks.com

21–30 of 50 posts

Re: Effectively Managing Memory at Gmail Scale

#21

Gmail still slow. Unrelated: Why haven't Google implemented a Google.com-quality-level search for email?

Gmail's email search is already the best in the space, by far. I'm sure there are improvements to be made, but zero external pressure to make them.

Gmail looks particularly good after 5 mins using Apple's search in iClouds Mail.

Re: Effectively Managing Memory at Gmail Scale

#22
post #20

> Game developers, take note: to ensure a 16ms frame time (required to achieve 60 frames per second), your application must make zero allocations, because a single young generation collection will eat up most of the frame time. And this is why GC isn't the be-all and end-all solution to memory management. (As as for people that are screaming "pauseless GC" - it has throughput issues [generally due to fine grained loc…

> And this is why GC isn't the be-all and end-all solution to memory management. At least a GC knows where your memory blocks are and doesn't double free them. > Now, if someone combined a pauseless GC with proper cleanup (i.e. skipping GC altogether) of variables where the compiler could determine when they can be thrown away, Have you ever looked into ParaSail, Rust, ATS?

> At least a GC knows where your memory blocks are and doesn't double free them.

Wrong. Counterexample: https://mail-archives.apache.org/mod_mbox/subversion-users/2... (Obtained by a quick search of "garbage collector double-free bug" - there are many others out there)

> Have you ever looked into ParaSail, Rust, ATS?

ParaSail and Rust don't have a GC, period, AFAIK. ATS is too strict for my liking. (I want a programming language that will refuse to compile if it can find a "counterexample" that will assert, but will compile something (with a warning and inserted runtime checks unless explicitly marked otherwise) even if it cannot prove something is correct.)

Re: Effectively Managing Memory at Gmail Scale

#23
post #17

> Game developers, take note: to ensure a 16ms frame time (required to achieve 60 frames per second), your application must make zero allocations, because a single young generation collection will eat up most of the frame time. And this is why GC isn't the be-all and end-all solution to memory management. (As as for people that are screaming "pauseless GC" - it has throughput issues [generally due to fine grained loc…

So basically one needs to re-implement smart pointers in Javascript, right ? What are the alternative to js style GC,for a language that wouldnt want to the developper to use manual memory allocation.I've heard about ARC.Are there other known architectures?

As I said: a pauseless GC with a smart language implementation would be fine. ARC can work, but either requires programmers to prevent loops or needs a GC regardless.

Object pools at the language level would be an alternative. (I.e. every object is allocated in a "pool", including pools. When a pool falls out of scope the entire pool is "freed". You can copy objects between pools as necessary.)

Re: Effectively Managing Memory at Gmail Scale

#24

Does anyone else feel like Gmail has actually been getting slower in the past year? It feels like it takes a lot longer to load... And once it finally does load, you still end up having to wait a reasonable amount of time for Hangouts.

The old html version is still pretty quick

https://mail.google.com/mail/u/0/h/

Re: Effectively Managing Memory at Gmail Scale

#25
post #20

Earlier quoted context omitted.

> And this is why GC isn't the be-all and end-all solution to memory management. At least a GC knows where your memory blocks are and doesn't double free them. > Now, if someone combined a pauseless GC with proper cleanup (i.e. skipping GC altogether) of variables where the compiler could determine when they can be thrown away, Have you ever looked into ParaSail, Rust, ATS?

> At least a GC knows where your memory blocks are and doesn't double free them. Wrong. Counterexample: https://mail-archives.apache.org/mod_mbox/subversion-users/2... (Obtained by a quick search of "garbage collector double-free bug" - there are many others out there) > Have you ever looked into ParaSail, Rust, ATS? ParaSail and Rust don't have a GC, period, AFAIK. ATS is too strict for my liking. (I want a programm…

> Wrong.....

I don't touch Perl since 2004. Back then it used reference counting, not a GC.

Second, the post reads like a problem in the C code.

> ParaSail and Rust don't have a GC, period, AFAIK. ATS is too strict for my liking.

I was replying about GC alternatives for automatic memory management.

Re: Effectively Managing Memory at Gmail Scale

#27

Gmail still slow. Unrelated: Why haven't Google implemented a Google.com-quality-level search for email?

I find Gmail search to work pretty well for me.

The question I have is why the Google Voice iPhone app does not have a search function AT ALL.

Re: Effectively Managing Memory at Gmail Scale

#28
post #25

Earlier quoted context omitted.

> At least a GC knows where your memory blocks are and doesn't double free them. Wrong. Counterexample: https://mail-archives.apache.org/mod_mbox/subversion-users/2... (Obtained by a quick search of "garbage collector double-free bug" - there are many others out there) > Have you ever looked into ParaSail, Rust, ATS? ParaSail and Rust don't have a GC, period, AFAIK. ATS is too strict for my liking. (I want a programm…

> Wrong..... I don't touch Perl since 2004. Back then it used reference counting, not a GC. Second, the post reads like a problem in the C code. > ParaSail and Rust don't have a GC, period, AFAIK. ATS is too strict for my liking. I was replying about GC alternatives for automatic memory management.

> the post reads like a problem in the C code.

Exactly. All GC does is push down the code that can cause problems like double-frees into the language implementation. It doesn't magically make problems like double-free bugs impossible, like so many people say.

> I was replying about GC alternatives for automatic memory management.

Then why did you respond to and quote something that was talking about something entirely different?

Re: Effectively Managing Memory at Gmail Scale

#29
post #17

> Game developers, take note: to ensure a 16ms frame time (required to achieve 60 frames per second), your application must make zero allocations, because a single young generation collection will eat up most of the frame time. And this is why GC isn't the be-all and end-all solution to memory management. (As as for people that are screaming "pauseless GC" - it has throughput issues [generally due to fine grained loc…

So basically one needs to re-implement smart pointers in Javascript, right ? What are the alternative to js style GC,for a language that wouldnt want to the developper to use manual memory allocation.I've heard about ARC.Are there other known architectures?

Smart pointers won't save you.

Yes, they'll eliminate the need for collection, by moving the overhead from a single collection to ever construction/destruction.

This may be worth it to get a constant framerate, but the overhead doesn't disappear. If anything, it could be greater: allocating from the heap usually costs more than an object allocation done by any sane VM.

Re: Effectively Managing Memory at Gmail Scale

#30

Does anyone else feel like Gmail has actually been getting slower in the past year? It feels like it takes a lot longer to load... And once it finally does load, you still end up having to wait a reasonable amount of time for Hangouts.

Google Contacts. So slow it hurts.
Post reply on HN