I don't quite see if this google group is useful or not, everybody keeps answering me with superficial things, i don't care about the trminology like tell me which allocator it uses when and why or at least if there's something i can read to understand..... I'm surprised u don't know what a JIT page is, basically if you call a function foo() let's say 100 times then v8,had enough time to understand the parameters given to that specific function and how to optimize it efficently based on it's prediction/observation.
I'm not interested in the terminology of things, (that's just a matter of reading the source code ) i'm more in reading how it works when and why.. For example when is ArrayBufferBuilder::Append called ?? And i thing i've looked at the entire v8 source code but didn't find much, apart from the array.js file which describes some javascript function, i don't understand where's the rest.... Il giorno lun 10 set 2018 alle ore 20:45 Jakob Kummerow < jkumme...@chromium.org> ha scritto: > On Sun, Sep 9, 2018 at 8:54 AM dan Med <litokis.ta...@gmail.com> wrote: > >> Oh and one more thing, i've surfed perhaps the entire source code of v8 >> at least the interesting parts, but what i came across was just very short >> code execpt for some builtins written in javascript i believe, can't find >> all of the things i've found on the documentation such as the interpreter >> > > src/interpreter/ > > >> and the JIT compilers, >> > > src/compiler/ > > >> one more thing i'd like to understand how the memory is handeled like how >> can i read about the JIT pages, >> > > What's a JIT page? > > >> or which memory allocator does v8 use >> > > It uses several allocation techniques for different purposes. > > >> and it's garbage collector >> > > src/heap/ > > >> >> Thank you ! >> >> Il giorno dom 9 set 2018 alle ore 17:51 dan Med <litokis.ta...@gmail.com> >> ha scritto: >> >>> I don't have understood this part, let me explain it to you. >>> This is how i get it tell me if i'm wrong at any part. >>> >>> I need to understand how is the structure in memory of the arraybuffer >>> how is it represented and if the data of the array are directly stored at >>> an offset accessed by buffer_ -> data(). >>> >>> >>> before the call to expand capacity it does create an array >>> >>> >>> the arraybuffer in src <https://cs.chromium.org/chromium/src/>/ >>> third_party <https://cs.chromium.org/chromium/src/third_party/>/blink >>> <https://cs.chromium.org/chromium/src/third_party/blink/>/renderer >>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/>/ >>> platform >>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/> >>> /wtf >>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/> >>> /typed_arrays >>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/> >>> /array_buffer_builder.cc >>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc> >>> is >>> called whenever the renderer (has to execute some javascript which defines >>> arraybuffers) >>> First when is arraybuffer::append called, cause i know that if someone >>> need to reallocate a bigger arraybuffer then a new instance will be created >>> and filled with the old values if the length in the original array isn't >>> has much as the user reqeusted ? >>> >>> One more thing is, when this class is called, the arraybuffer is always >>> set to the initial length of static const int kDefaultBufferCapacity >>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc?l=38&gs=kythe%253A%252F%252Fchromium%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fthird_party%252Fblink%252Frenderer%252Fplatform%252Fwtf%252Ftyped_arrays%252Farray_buffer_builder.cc%2523YXDT7WTpXCAcuhdyTlkuCzsfCzI%25252BoHLRFAlkbCrkx4g%25253D&gsn=kDefaultBufferCapacity&ct=xref_usages> >>> = 32768; if in the javascript i declare an arraybuffer of 20bytes will >>> it allocate of >>> 32768bytes anyway =? >>> >>> >>> >>> >>> >>> >>> >>> Il giorno mar 4 set 2018 alle ore 12:14 Graham Reeves < >>> gra...@grahamreeves.com> ha scritto: >>> >>>> > is std::numeric_limits >>>> <https://cs.chromium.org/chromium/src/buildtools/third_party/libc%2B%2B/trunk/include/limits?l=442&ct=xref_jump_to_def&gsn=numeric_limits> >>>> <unsigned>::max >>>> <https://cs.chromium.org/chromium/src/buildtools/third_party/libc%2B%2B/trunk/include/limits?l=450&ct=xref_jump_to_def&gsn=max>(); >>>> referring to the max unsigned int value ? cause the source code won't find >>>> it >>>> Yes, that's the maximum value unsigned (an unsigned int) can be, but >>>> what do you mean by, the source won't find it? >>>> >>>> On Monday, 3 September 2018 19:55:48 UTC+1, dan Med wrote: >>>>> >>>>> Can someone help me out? >>>>> >>>>> Il giorno sab 1 set 2018 alle ore 15:30 <litoki...@gmail.com> ha >>>>> scritto: >>>>> >>>>>> array_buffer_builder.cc in src >>>>>> <https://cs.chromium.org/chromium/src/>/third_party >>>>>> <https://cs.chromium.org/chromium/src/third_party/>/blink >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/>/renderer >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/>/ >>>>>> platform >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/> >>>>>> /wtf >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/> >>>>>> /typed_arrays >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/> >>>>>> /array_buffer_builder.cc >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc> >>>>>> >>>>>> the ArrayBufferBuilder >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=44&ct=xref_jump_to_def&gsn=ArrayBufferBuilder> >>>>>> ::Append >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc?l=74&gs=kythe%253A%252F%252Fchromium%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fthird_party%252Fblink%252Frenderer%252Fplatform%252Fwtf%252Ftyped_arrays%252Farray_buffer_builder.cc%2523NFGzJegTouRzc7WYe5NO52sD3rtLZRfs3mHeMLIQn8I%25253D&gsn=Append&ct=xref_usages> >>>>>> method >>>>>> will be called through a view on top of the arraybuffer? something like, >>>>>> there's a arraybuffer of 30bytes in length and we define a view on top of >>>>>> it (so a typedarray) wehn i call on the new typedarray object the .append >>>>>> method it will call ArrayBufferBuilder >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=44&ct=xref_jump_to_def&gsn=ArrayBufferBuilder> >>>>>> ::Append >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc?l=74&gs=kythe%253A%252F%252Fchromium%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fthird_party%252Fblink%252Frenderer%252Fplatform%252Fwtf%252Ftyped_arrays%252Farray_buffer_builder.cc%2523NFGzJegTouRzc7WYe5NO52sD3rtLZRfs3mHeMLIQn8I%25253D&gsn=Append&ct=xref_usages> >>>>>> and then inside it's code it will execute ArrayBufferBuilder >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=44&ct=xref_jump_to_def&gsn=ArrayBufferBuilder> >>>>>> ::ExpandCapacity >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc?l=45&gs=kythe%253A%252F%252Fchromium%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fthird_party%252Fblink%252Frenderer%252Fplatform%252Fwtf%252Ftyped_arrays%252Farray_buffer_builder.cc%2523Fu6GnwJLuMqh5Thz%25252BDq0LStBEA8HzkICqnAPtIOPIhY%25253D&gsn=ExpandCapacity&ct=xref_usages> >>>>>> if >>>>>> it needs to reallocate the array ? >>>>>> >>>>>> if so inside the expandCapacity definition bytes_used >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=92&ct=xref_jump_to_def&gsn=bytes_used_> >>>>>> referes >>>>>> to the elements inside the actual arraybuffer so if i have a arraybuffer >>>>>> which is 8 bytes in length [ ][ ][ ][ ][ ][ ][ ][ ] and i fill in only 3 >>>>>> bytes so >>>>>> [1][2][3][ ][ ][ ][ ][ ] the bytes_used >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=92&ct=xref_jump_to_def&gsn=bytes_used_> >>>>>> when >>>>>> retrieved will be set to 3 bytes ?? >>>>>> >>>>>> ArrayBufferBuilder >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=44&ct=xref_jump_to_def&gsn=ArrayBufferBuilder>::ArrayBufferBuilder >>>>>> >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc?l=40&gs=kythe%253A%252F%252Fchromium%253Flang%253Dc%25252B%25252B%253Fpath%253Dsrc%252Fthird_party%252Fblink%252Frenderer%252Fplatform%252Fwtf%252Ftyped_arrays%252Farray_buffer_builder.cc%2523lcp23D0sHKN2WnDoJe7UbBQtgQbZY3lJ%25252Bn9qnDlawck%25253D&gsn=ArrayBufferBuilder&ct=xref_usages>() >>>>>> : bytes_used_ >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=92&ct=xref_jump_to_def&gsn=bytes_used_>(0), >>>>>> variable_capacity_ >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=93&ct=xref_jump_to_def&gsn=variable_capacity_>(true) >>>>>> { buffer_ >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.h?l=94&ct=xref_jump_to_def&gsn=buffer_> >>>>>> = >>>>>> <https://cs.chromium.org/chromium/src/base/memory/scoped_refptr.h?l=226&ct=xref_jump_to_def&gsn=%3D> >>>>>> ArrayBuffer >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer.h?l=42&ct=xref_jump_to_def&gsn=ArrayBuffer>::Create >>>>>> >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer.h?l=125&ct=xref_jump_to_def&gsn=Create>(kDefaultBufferCapacity >>>>>> >>>>>> <https://cs.chromium.org/chromium/src/third_party/blink/renderer/platform/wtf/typed_arrays/array_buffer_builder.cc?l=38&ct=xref_jump_to_def&gsn=kDefaultBufferCapacity>, >>>>>> 1);} >>>>>> here buffer_ will be equal to an arraybuffer of 32768 bytes in length ? >>>>>> since the KdefaultBuffer... is set to that value. >>>>>> is std::numeric_limits >>>>>> <https://cs.chromium.org/chromium/src/buildtools/third_party/libc%2B%2B/trunk/include/limits?l=442&ct=xref_jump_to_def&gsn=numeric_limits><unsigned>::max >>>>>> >>>>>> <https://cs.chromium.org/chromium/src/buildtools/third_party/libc%2B%2B/trunk/include/limits?l=450&ct=xref_jump_to_def&gsn=max>(); >>>>>> referring to the max unsigned int value ? cause the source code won't >>>>>> find it >>>>>> >>>>>> -- >>>>>> -- >>>>>> v8-users mailing list >>>>>> v8-u...@googlegroups.com >>>>>> http://groups.google.com/group/v8-users >>>>>> --- >>>>>> You received this message because you are subscribed to the Google >>>>>> Groups "v8-users" group. >>>>>> To unsubscribe from this group and stop receiving emails from it, >>>>>> send an email to v8-users+u...@googlegroups.com. >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> -- >>>> -- >>>> v8-users mailing list >>>> v8-users@googlegroups.com >>>> http://groups.google.com/group/v8-users >>>> --- >>>> You received this message because you are subscribed to the Google >>>> Groups "v8-users" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to v8-users+unsubscr...@googlegroups.com. >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> -- >> -- >> v8-users mailing list >> v8-users@googlegroups.com >> http://groups.google.com/group/v8-users >> --- >> You received this message because you are subscribed to the Google Groups >> "v8-users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to v8-users+unsubscr...@googlegroups.com. >> For more options, visit https://groups.google.com/d/optout. >> > -- > -- > v8-users mailing list > v8-users@googlegroups.com > http://groups.google.com/group/v8-users > --- > You received this message because you are subscribed to the Google Groups > "v8-users" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to v8-users+unsubscr...@googlegroups.com. > For more options, visit https://groups.google.com/d/optout. > -- -- v8-users mailing list v8-users@googlegroups.com http://groups.google.com/group/v8-users --- You received this message because you are subscribed to the Google Groups "v8-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to v8-users+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.