I just finished a first version of the allocation profiling tool, and I have results (attached) for the tachyon bootstrap (current master branch). Types in angular brackets are builtin types, while the others are normal JS object types. There are two known issues with this version, however :
1) Array sizes are not computed properly. This is due to an issue in v8 where some array objects seem to only be partially initialized by the time the profiler intercepts their creation. As a result, trying to access their elements results in a bus error. I haven't found a way to identify these objects at the moment, so I have to avoid getting the element size for all arrays just to be on the safe side. 2) There is a potential overcounting of the object sizes as well. This is due to the fact that object maps can be shared, but I currently count the object's map size as part of its total size. The decision is based on the fact that sharing is relatively rare, so it is better to count the map in most cases. If this turns out to be a problem, I can implement some smarter size computation that takes sharing into consideration.
Bruno
Afficher les réponses par date