On Monday, 31 December 2012 at 12:14:22 UTC, Sven Over wrote:
In my job I'm writing backend services that power a big web site. Perfomance is key, as the response time of the data service in most cases directly adds to the page load time. The bare possibility that the whole service pauses for, say, 100ms is making me feel very uncomfortable.

Back to the original scenario:

Current CPUs have a measured peak throughput of 2-4GB per 100ms. So if you keep pointers clustered on cache lines in a way that is compatible with the AGCs prefetching patterns, then you ought to make it for most applications if the collector is optimized?

If your backend service (data) is replicated on multiple servers you could, of course, let the servers run the GC at different times organized with a load-balancer/router/task scheduler.

So if GC makes you more productive on a web server then I don't really see why you don't use it.

Now, that might not work out in the future though. If CPU caches keep growing to the extent that most of your working dataset sits in the cache and you have lots of rather slow main memory then the AGC process will become sloooow no matter how good the GC is.

Reply via email to