Что делает DumpXS в Perl Data :: Dumper? - PullRequest
5 голосов
/ 01 апреля 2010

Я прошел исходный код Data :: Dumper . В этом пакете я не понял, что происходит с DumpXS. Какая польза от этого DumpXS?

Я искал об этом, и я прочитал, что оно равно функции Dump и быстрее, чем Dump Но я этого не понял.

Ответы [ 3 ]

5 голосов
/ 01 апреля 2010

Язык XS является связующим звеном между обычным Perl и C. Когда люди хотят выжать из операции каждый последний бит производительности, они пытаются написать ее максимально близко к коду C.Python и Ruby имеют схожие механизмы по одной и той же причине.

Некоторые модули Perl имеют реализацию XS для повышения производительности.Однако вам нужен компилятор C для его установки.Не каждый может установить скомпилированные модули, поэтому модули также выпускаются в версиях "PurePerl" или "PP", которые делают то же самое чуть медленнее.Если у вас нет реализации XS, такой модуль, как Data :: Dumper , может автоматически использовать чистую реализацию Perl.В этом случае Data :: Dumper также позволяет вам выбрать, какой из них вы хотите использовать.

2 голосов
/ 01 апреля 2010

Многие модули Perl имеют версии "XS", такие как JSON :: XS.XS в названии означает, что он частично использует C, чтобы увеличить скорость или другую эффективность модуля.Я не знаю этого конкретного случая, но, вероятно, это так.

0 голосов
/ 01 апреля 2010

И если вы хотите немного больше информации о XS, перейдите на http://perldoc.perl.org/perlxs.html Но мне любопытно, что привело вас к этому вопросу.

...