Оптимизация perl кода. Часть 2

Анастасия

Оптимизация perl кода. Часть 2

Компилятор perl'a состоит из модулей O:: (API) и B:: (реализации). На самом деле модули API, тоже находятся в namespac'e B::, поэтому, чтобы получить по ним документацию надо писать perldoc B::ModuleName. Ниже приведены примеры использования этих модулей. perldb - это перл скомпилированный с -DDEBUGGING (см. http://dsn74.livejournal.com/14749.html).

perldb -MO=Lint program_name
выводит предупреждения о всех возможных сомнительных местах в программе. Даже те, которые не показываются при perl -w, use strict и use warning.

perldb -MO=Xref program_name
генерирует список всех функций, переменных и модулей, в том числе из библиотек. Например:

Subroutine (main)
  Package (lexical)
    $FILE i16, 34
    $c    i26, 29, 29
    $f    i10, &16, 13, 16, 16

i[номер строки] - первое использование или определение
s[номер строки] - определение функции
&[номер строки] - вызов функции
подробности в perldoc B::Xref

perldb -MO=Deparse,-p program_name
Напечатает код программы в оптимизированном виде так, как интерпретатор будет его выполнять. Ключ -p - показывать скобки.

perldb -MO=Concise program_name
Показывает opcode - промежуточный код, что-то вроде внутреннего перловского ассемблера или JVM.

 

Похожие записи

Вы можете оставить
комментарий



    
© 2002-2016 Креограф. Все права защищены законом РФ
 Русский /  English