Data::Dumper의 소스 코드를 살펴 보았습니다. 이 패키지에서 나는 DumpXS가 어떤 일을하는지 이해하지 못했습니다. 이 DumpXS의 사용법은 무엇입니까?Perl의 Data :: Dumper에서 DumpXS는 무엇을합니까?
저는 이것에 대해 조사한 결과, Dump
함수와 동일하고 Dump
보다 빠릅니다. 그러나 나는 그것을 이해하지 못했습니다.
Data::Dumper의 소스 코드를 살펴 보았습니다. 이 패키지에서 나는 DumpXS가 어떤 일을하는지 이해하지 못했습니다. 이 DumpXS의 사용법은 무엇입니까?Perl의 Data :: Dumper에서 DumpXS는 무엇을합니까?
저는 이것에 대해 조사한 결과, Dump
함수와 동일하고 Dump
보다 빠릅니다. 그러나 나는 그것을 이해하지 못했습니다.
XS language은 일반 Perl과 C 사이의 접착제입니다. 사람들이 작업의 모든 마지막 비트를 압축하려고 할 때 가능한 한 C 코드에 가깝게 쓰려고합니다. Python과 Ruby도 같은 이유로 메커니즘이 비슷합니다.
일부 Perl 모듈에는 성능을 향상시키기 위해 XS 구현이 있습니다. 그러나이를 설치하려면 C 컴파일러가 필요합니다. 누구나 컴파일 된 모듈을 설치할 수있는 위치에있는 것은 아니므로 모듈은 동일한 작업을 약간 느리게 수행하는 "PurePerl"또는 "PP"버전으로 제공됩니다. XS 구현이없는 경우 Data::Dumper과 같은 모듈은 자동으로 순수한 Perl 구현을 사용할 수 있습니다. 이 경우 Data :: Dumper를 사용하여 사용할 항목을 선택할 수도 있습니다.
많은 Perl 모듈에는 JSON :: XS와 같은 "XS"버전이 있습니다. 이름의 XS는 모듈의 속도 또는 기타 효율성을 높이기 위해 부분적으로 C를 사용함을 의미합니다. 나는이 특별한 경우를 모른다. 그러나 그것은 아마 그 것이다.
그리고 XS에 대한 자세한 정보가 필요하면 http://perldoc.perl.org/perlxs.html 으로 가야합니다. 그러나 나는이 질문에 당신을 이끌어 갈지 궁금합니다.
입니다. 그러나 이것은 일반적인 Data :: Dumper 사용자가 신경 쓰지 말아야 할 세부 사항입니다. XS (즉 C) 구현은 속도가 빠르기 때문에 가능할 때마다 사용합니다. – tsee
나는 모듈에 대한 문제보다는 질문자의 호기심이라고 생각한다. –