
ब्राउज़र-शोषण को लक्षित करने वाले संसाधनों का एक अद्यतन संग्रह।
ब्राउज़र की दुनिया में 4 प्रमुख खिलाड़ी हावी हैं:
निम्नलिखित को दो भागों में विभाजित किया गया है:
बेशक, आप स्रोतों को ब्राउज़ करने के लिए अपने पसंदीदा सेटअप का उपयोग कर सकते हैं। हालाँकि, ये रिपॉज़िटरी अपेक्षाकृत बड़ी हैं और मैंने कुछ अलग सेटअप आज़माए, जब तक कि मुझे कुछ ऐसा नहीं मिला जो मेरे लिए काम आया। इसलिए, यदि आपके पास पहले से अच्छा सेटअप नहीं है, तो यहाँ मेरे कुछ अनुभव दिए गए हैं जो आपकी मदद कर सकते हैं:
लेख:
Blink का JavaScript-इंजन V8 है।
प्रोजेक्ट | GitHub | स्रोत | कैसे बनाएं
बिल्ड (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: Turbolizer विज़ुअलाइज़ेशन के लिए TurboFan ट्रेसलेख:
V8, TurboFan के लिए एक विज़ुअलाइज़ेशन प्रदान करता है जिसे Turbolizer कहा जाता है।
लेख:
--trace-turbo के साथ चलाएं: d8 --trace-turbo foo.jsturbo-foo-0.jsonv8/tools/turbolizer पर जाएं और README.md में वर्णित अनुसार npm के साथ इंस्टॉल करेंpython -m SimpleHTTPServer 8000localhost:8000 पर ब्राउज़ करें और turbo-foo-0.json खोलेंGecko का JavaScript-इंजन 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 का JavaScript-इंजन 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 में 4-परत वाली JIT-कंपाइलर प्रणाली है, जो ओवरहेड प्रदर्शन लागत और प्रदर्शन लाभ के बीच ट्रेड-ऑफ को दर्शाती है।
लेख:
चूँकि Edge ने अपने रेंडरिंग-इंजन के रूप में Blink और Chromium प्रोजेक्ट पर स्विच कर लिया, Edge अब v8 का उपयोग कर रहा है। मूल रूप से, Edge का अपना रेंडरिंग-इंजन था जिसे EdgeHTML कहा जाता था, जो ChakraCore JavaScript-इंजन का उपयोग करता था।
# 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