You call foo() 100 times Il giorno lun 10 set 2018 alle ore 21:21 dan Med <litokis.ta...@gmail.com> ha scritto:
> 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.