Several V8 instances in process, ep. 3

Mar 28, 2011 18:10

V8 получил возможность создавать несколько экземпляров в процессе в основной ветке v. 3.2.4
http://code.google.com/p/v8/source/detail?spec=svn7392&r=7322
P.S.
Это можно добавить в резюме :) multithreading, v8, javascript

Leave a comment

Comments 6

skavish March 28 2011, 15:01:57 UTC
поздравляю! :)

btw ты случайно не знаешь как сделаны массивы в v8? скажем доступ по индексу это реально доступ по индексу или там какая-нибудь мапа?

Reply

skavish March 29 2011, 05:53:51 UTC
Отвечает знаток Митя Ломов:
По-разному, Дим, в зависимости от размера:
http://code.google.com/p/v8/source/browse/branches/bleeding_edge/src/objects.h, line 6063:
// The JSArray describes JavaScript Arrays
// Such an array can be in one of two modes:
// - fast, backing storage is a FixedArray and length <= elements.length();
// Please note: push and pop can be used to grow and shrink the array.
// - slow, backing storage is a HashTable with numbers as keys.
class JSArray: public JSObject { }

elements это такая шняга, которая у всех Джаваскриптных объектов есть и держит проперти, которые числами индексируются

Reply

skavish March 29 2011, 12:54:49 UTC
ага, спасибо! я правильно понимаю что в мапу он превращается только когда там много больших дыр?

unrelated: а есть какие то технические причины держать это все в одном хедере на 6K строк или это просто такой эээ... стиль?

Reply

nicity March 30 2011, 15:22:18 UTC
new Array(n) должен создавать последовательный массив,
мапа унаследована от объекта,
про другие переходы не в курсе пока :)

unrelated: Инлайны делаются при компиляции, поэтому все мелкие функции размещаются в заголовочных файлах.

Reply


gizotear April 15 2011, 08:17:57 UTC
Great post! I wish you could follow up on this topic!

Reply


beeuwi November 3 2011, 21:51:46 UTC
I hope you will keep updating your content constantly as you have one dedicated reader here.

Reply


Leave a comment