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.