ट्रेसिंग टूल्स का परिचय
- ट्रेसिंग के प्रति उत्साह और अनुभव के आधार पर विभिन्न ट्रेसिंग तरीकों का परिचय
- 2 नए और रोचक ट्रेसिंग टूल्स शामिल
- ट्रेसिंग का मूल: सिस्टम में उत्पन्न timestamp डेटा एकत्र करना और उसे timeline UI में विज़ुअलाइज़ करना
डेटा को timeline UI में आसानी से विज़ुअलाइज़ करना
- Chromium Event JSON Format का उपयोग करके सरल JSON फ़ॉर्मैट में event डेटा का विज़ुअलाइज़ेशन
- Google के Perfetto या Catapult viewer के माध्यम से tracing files देखना
- Python utility का उपयोग करके trace files को clickable links में बदलना और साझा करना
उन्नत फ़ॉर्मैट: Fuchsia Trace Format और Perfetto Protobuf
- Fuchsia Trace Format (FTF): बड़े trace files के लिए सरल और compact binary format
- Perfetto Protobuf: अधिक फीचर्स को सपोर्ट करने वाला compact format, जिसे Protobuf library के माध्यम से बनाया जा सकता है
विभिन्न ट्रेसिंग टूल्स
- Speedscope, pprof, Rerun आदि जैसे विभिन्न trace visualization tools का परिचय
- Trace Compass, Firefox Profiler जैसे profiler viewers का उल्लेख
ट्रेसिंग के तरीके
- hardware breakpoints, perf, GDB scripting जैसे low-level tracing methods का परिचय
- Intel Processor Trace का उपयोग करके program execution trace करना
- magic-trace: function calls को विज़ुअलाइज़ करने वाली trace files बनाने का टूल
instrumentation-आधारित tracing profilers
- Tracy, Optick, Perfetto जैसे instrumentation-आधारित tracing profilers की तुलना
- अतिरिक्त जानकारी शामिल करने वाले event डेटा के महत्व पर ज़ोर
eBPF
- Linux kernel का उपयोग करके tracing के लिए eBPF subsystem का परिचय
- BCC, bpftrace, ply जैसे eBPF tracing tools का परिचय
eBPF उदाहरण: Anthropic का Perfetto-आधारित packet और user event tracing
- networking code में tail latency का विश्लेषण करने के लिए BCC और Perfetto visualization का संयोजन
- eBPF का उपयोग करके user-space event tracing और C helper के माध्यम से event processing optimization
binary instrumentation
- source code तक पहुंच संभव न होने पर उपयोग किए जाने वाले binary instrumentation methods का परिचय
- bpftime, E9Patch, Frida जैसे tools का विवरण
distributed tracing
- services के बीच tracing के लिए OpenTelemetry, Zipkin, Odigos जैसे solutions का उल्लेख
sampling profilers
- समय-समय पर program के पूरे call stack का sampling करने वाले profilers का परिचय
- Speedscope, Samply जैसे time axis शामिल करने वाले UI का उपयोग
QEMU instrumentation
- जब सभी tracing tools विफल हो जाएँ, तब उपयोग होने वाले QEMU के full emulation और hooking
- Cannoli, QEMU TCG Plugins, usercorn जैसे tools का परिचय
GN⁺ की राय
इस लेख की सबसे महत्वपूर्ण बात यह है कि यह विभिन्न प्रकार की समस्याओं को हल करने के लिए इस्तेमाल किए जा सकने वाले tracing methods का एक व्यापक कैटलॉग प्रदान करता है। यह विभिन्न tracing tools और तरीकों का परिचय ऐसे स्तर पर कराता है जिसे शुरुआती software engineers भी आसानी से समझ सकें, इसलिए tracing में रुचि रखने वालों के लिए यह बहुत उपयोगी और रोचक है। खास तौर पर, वास्तविक उदाहरणों के माध्यम से eBPF tracing और Perfetto visualization को जोड़ने वाला हिस्सा यह दिखाता है कि इन्हें व्यावहारिक काम में कैसे लागू किया जा सकता है, और यह पाठकों को नए insights दे सकता है।
1 टिप्पणियां
Hacker News टिप्पणी
Spall डेवलपर की राय:
Windows application पर काम करने वालों के लिए ETW की सिफारिश:
open source solutions पर एक overview:
Anthropic में hiring का तरीका:
Python program और packet correlation तकनीक:
IDE plugin development team का अनुभव:
JavaScript execution cost profiling के लिए उद्योग की ज़रूरत:
dtrace का उल्लेख और bcantrill की rant:
उपयोगी tools के लिए आभार: