
مجموعة محدّثة من الموارد التي تستهدف استغلال المتصفحات.
يُهيمن على عالم المتصفحات 4 لاعبون رئيسيون:
ينقسم ما يلي إلى جزأين:
بالطبع يمكنك استخدام إعدادك المفضل لتصفح المصادر. ومع ذلك، فإن هذه المستودعات كبيرة نسبيًا وقد جربت عدة إعدادات مختلفة حتى وجدت ما يناسبني. لذا إذا لم يكن لديك إعداد جيد بالفعل، فإليك بعض تجاربي التي قد تساعدك:
مقالات:
محرك الجافاسكربت الخاص بـ Blink هو V8.
المشروع | GitHub | المصدر | How2Build
البناء (Ubuntu 18.04):
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
$ export PATH=$PATH:./depot_tools
$ gclient
$ mkdir ./v8 && cd ./v8
$ fetch v8 && cd v8
$ git pull
$ gclient sync
$ ./build/install-build-deps.sh
$ tools/dev/gm.py x64.release
$ out/x64.release/d8
خيارات مفيدة:
--print-opt-code: الكود المُنشأ بواسطة المترجم المُحسِّن--print-byte-code: البايت كود المُنشأ بواسطة المفسِّر--trace-ic: أنواع الكائنات المختلفة التي يواجهها موقع الاستدعاء--trace-opt و--trace-deopt: توضح أي الدوال يتم تحسينها أو إلغاء تحسينها--trace-turbo: تتبعات TurboFan لعرضها في أداة التصور Turbolizerمقالات:
يوفر V8 أداة تصور لـ TurboFan تُسمى Turbolizer
مقالات:
--trace-turbo: d8 --trace-turbo foo.jsturbo-foo-0.jsonv8/tools/turbolizer وقم بالتثبيت باستخدام npm كما هو موضح في README.mdpython -m SimpleHTTPServer 8000localhost:8000 وافتح turbo-foo-0.jsonمحرك الجافاسكربت الخاص بـ Gecko هو Spidermonkey.
البناء (Ubuntu 18.04):
$ wget -O bootstrap.py https://hg.mozilla.org/mozilla-central/raw-file/default/python/mozboot/bin/bootstrap.py && python bootstrap.py
$ git clone https://github.com/mozilla/gecko-dev.git && cd gecko-dev
$ cd js/src
$ autoconf2.13
# This name should end with "_DBG.OBJ" to make the version control system ignore it.
$ mkdir build_DBG.OBJ
$ cd build_DBG.OBJ
$ ../configure --enable-debug --disable-optimize
# Use "mozmake" on Windows
$ make -j 6
$ js/src/js
يوفر Spidermonkey أداة تصور لـ IonMonkey تُسمى IonGraph
محرك الجافاسكربت الخاص بـ WebKit هو JavaScriptCore (JSC).
مقالات:
# sudo apt install libicu-dev python ruby bison flex cmake build-essential ninja-build git gperf
$ git clone git://git.webkit.org/WebKit.git && cd WebKit
$ Tools/gtk/install-dependencies
$ Tools/Scripts/build-webkit --jsc-only --debug
$ cd WebKitBuild/Release
$ LD_LIBRARY_PATH=./lib bin/jsc
يمتلك WebKit نظام مترجم JIT من 4 طبقات، يمثل المفاضلة بين تكلفة الأداء الإضافية وفائدة الأداء.
مقالات:
منذ أن تحول Edge إلى Blink ومشروع Chromium كمحرك عرض له، أصبح Edge يستخدم v8. في الأصل، كان لدى Edge محرك عرض خاص به يُدعى EdgeHTML، وكان يستخدم محرك الجافاسكربت ChakraCore.
# To build ChakraCore on Linux: (requires Clang 3.7+ and Python 2)
$ apt-get install -y git build-essential cmake clang libicu-dev libunwind8-dev
$ git clone https://github.com/Microsoft/ChakraCore && cd ChakraCore
$ ./build.sh --cc=/usr/bin/clang-3.9 --cxx=/usr/bin/clang++-3.9 --arch=amd64 --debug
$ out/Debug/ch