= 2010-06-07 = == Profiling / Profiler == * [http://www.pixelbeat.org/programming/profiling/ Linux Profiling tools and techniques] (2011-04-27) * Java * [http://www.eclipse.org/tptp/ Eclipse Test & Performance Tools Platform Project (TPTP)] - Eclipse 的 Profiling 工具 * [http://www.eclipse.org/tptp/home/documents/tutorials/profilingtool/profilingexample_32.html An introduction to profiling Java applications] * [http://help.eclipse.org/help32/index.jsp?topic=/org.eclipse.tptp.platform.doc.user/concepts/ceproftl.htm Overview of the Profiling Tool] - Eclipse 說明文件有蠻詳細的 Monitoring and profiling applications 觀念與操作步驟介紹 * [http://sourceforge.net/projects/eclipsecolorer/ Eclipse profiler plugin] - 已經不維護了 * [http://eclipsecolorer.sourceforge.net/index_profiler.html 可以產生 call graph] * [http://www.theserverside.com/news/1364402/Code-Analysis-with-the-Eclipse-Profiler Code Analysis with the Eclipse Profiler] * [http://profiler.netbeans.org/ Netbean Java Profiler] - CPU, memory and threads profiling - 搭配 Netbean * [http://www.ej-technologies.com/company/profile.html JProfiler] - [http://en.wikipedia.org/wiki/JProfiler 維基百科] - 搭配 Eclipse * [http://www.khelekore.org/jmp/ jmp] - Java Memory Profiler (主攻記憶體的 Profiler) * [http://packages.debian.org/jmp Debian 套件 jmp] - Profiler for Java to trace object and method timings (舊的) * [http://www.khelekore.org/jmp/tijmp/ tijmp] - [http://packages.debian.org/tijmp Debian 套件 tijmp] - Profiler for Java to trace object and method timings (比較新) * Runtime Profiler * http://profiler4j.sourceforge.net/ - 看起來不錯,不過大約 2006 之後就比較少更新了。 * Monitoring - JMX * [http://klaas.homeip.net/mcs/jmeasurement/ JMeasurement] - 支援 JMX 的 Profiler * [http://xdprof.sourceforge.net/ xdprof] - a cross-platform tool that captures and analyzes stack traces sent at a fixed interval from Java Virtual Machines in a distributed system - 因為是針對分散式系統的 profiler,所以有可能可以用在 Hadoop 效能分析上 * C - check [raw-attachment:wiki:jazz/10-06-07:Advanced_C_Programming_Profiling.pdf slides of "Advanced C Programming - Profiling"] * [http://www.gnu.org/software/binutils/ gprof] - 屬於 GNU binutils 的一部分 - [http://packages.debian.org/binutils Debian 套件 - binutils] * [http://blog.superd.org/index.php/2004/11/02/39/ gprof 看 performance 分析…] * [http://kprof.sourceforge.net/ kprof] - a KDE3 visual tool to help analyze profiling results - [http://packages.debian.org/kprof Debian 套件 kprof] * [http://code.google.com/p/jrfonseca/wiki/Gprof2Dot#Example gprof2dot] - 把 gprof log 轉成 graphviz 的 dot 格式,就可以畫出圖形了 * gcov - 統計 code coverage 的工具,可以在 gcc 編譯時加參數來達成。 {{{ Use GCC flags -fprofile-arcs: collect info about jumps -ftest-coverage: collect info about code coverage }}} * [http://valgrind.org/ valgrind] - [http://packages.debian.org/valgrind Debian 套件 - valgrind] - ([wiki:jazz/10-03-04 2010-03-04]) * [http://daydreamer.idv.tw/rewrite.php/read-18.html 檢查程式記憶體的小工具-valgrind] * [http://www.jeffhung.net/blog/articles/jeffhung/1007/ Detecting C/C++ memory leaks with valgrind] * 在 [raw-attachment:wiki:jazz/10-06-07:Advanced_C_Programming_Profiling.pdf slides of "Advanced C Programming - Profiling"] 投影片介紹中,有三個主要工具 memcheck、cachegrind、callgrind * cachegrind - 模擬 L1/L2 Cache, 找出 cache misses * [http://packages.debian.org/kcachegrind Debian 套件 kcachegrind] - visualisation tool for valgrind profiling output - 可以用視覺化圖形介面顯示 cachegrind 的輸出 * [http://packages.debian.org/kcachegrind-converters Debian 套件 kcachegrind-converters] - format converters for KCachegrind profiling visualisation tool * callgrind - 紀錄函數呼叫圖(call graph) * [http://live.gnome.org/iogrind iogrind] - I/O profiling tool - 用來顯示應用程式的 I/O Profile * [http://oprofile.sourceforge.net oprofile] - a system-wide profiler for Linux systems, capable of profiling all running code at low overhead. * 有 [http://packages.debian.org/oprofile Debian 套件 - oprofile] {{{ #!sh ~# opcontrol --init # to load module and daemon ~# opcontrol -s # to start sampling ~# opcontrol -t # to stop sampling ~# opcontrol --dump # ?ushes the event log ~# opcontrol --list-events # shows available performance counters ~# opreport -l prog-name # gives breakdown of samples per function in prog-name }}} * [http://packages.debian.org/oprofile-gui Debian 套件 oprofile-gui] - system-wide profiler for Linux systems (GUI components) * [http://hi.baidu.com/colin719/blog/item/3d78da8032ba72d79123d9ed.html 使用 gprof 和 oprofile 查找性能瓶頸] * [http://packages.debian.org/sid/qprof qprof] - Profiling utilities for Linux * Perl * [http://search.cpan.org/dist/Devel-Profile/ Devel::Profile] - [http://packages.debian.org/libdevel-profile-perl Debian 套件 - libdevel-profile-perl] - a Perl code profiler * [http://search.cpan.org/dist/Devel-Cover/ Devel::Cover] - Code coverage metrics for Perl - [http://packages.debian.org/libdevel-cover-perl Debian 套件 libdevel-cover-perl] * PHP - references for armorize * [http://www.linuxjournal.com/article/7213 PHP Performance Profiling] * [http://www.php-editors.com/php-tools/php-profiler.php php-profiler] * Bash * 看樣子,bash 編譯時如果加入 [http://www.faqs.org/docs/bashman/bashref_120.html --enable-profiling] 就可以透過 gprof 進行 profiling。至於怎麼用,暫且還沒找到範例。 * MPI * [http://packages.debian.org/tau Debian 套件 tau] - Tuning and Analysis Utilities - base profiling toolkit * TAU is a profiling toolkit specially made for parallel computing (multi-thread, multi-process, MPI, PVM). - 針對平行程式的 Profiler 不過套件裡面包的只有 pthread 的支援,因此無法做 MPI, PVM 分析。 * [http://packages.debian.org/tau-examples Debian 套件 tau-examples] - Tuning and Analysis Utilities - examples - 一些 TAU 的範例 * [http://packages.debian.org/python-tau Debian 套件 python-tau] - Tuning and Analysis Utilities - support for python bindings * Python * [http://packages.debian.org/python-profiler Debian 套件 python-profiler] - deterministic profiling of any Python programs * Ruby * [http://packages.debian.org/ruby-prof Debian 套件 ruby-prof] - A fast code profiler for Ruby * C# / Mono * [http://packages.debian.org/mono-profiler mono-profiler] - Mono profiler - [http://packages.debian.org/mono-profiler 有 Debian 套件 mono-profiler] == Microcontroller (MCU, PIC) == * 先前來演講的 Xavi 談到要徵人幫忙把 * [http://sdcc.sf.net/ SDCC - Small Device C Compiler] - [http://packages.debian.org/sdcc Debian 套件 sdcc] * [http://piklab.sourceforge.net/devices.php Piklab - IDE for PIC microcontrollers] - an integrated development environment (IDE) for applications based on Microchip PIC and dsPIC microcontrollers similar to the MPLAB environment. - 類似 Microchip 官方 MPLAB 的整合開發環境 - 有 [http://packages.debian.org/piklab piklab 的 Debian 套件] * [http://gpsim.sf.net gpsim] - Simulator for Microchip's PIC microcontrollers - [http://packages.debian.org/gpsim Debian 套件 gpsim] * [http://gputils.sf.net gputils] - [http://packages.debian.org/gputils Debian 套件 gputils] - utilities for the Microchip PIC microcontrollers family contain an assembler (compatible with MPASM), a disassembler, and other tools. * [http://www.freertos.org/ FreeRTOS] - a portable, open source, royalty free, mini Real Time Kernel - 先前就有紀錄過用單晶片上執行 linux 系統,這個專案也是可以執行在很多家的單晶片上。