Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Parallel::Pipesの紹介

 Parallel::Pipesの紹介

2025/05/31 Houtou.pm #1

Avatar for Shoichi Kaji

Shoichi Kaji

May 31, 2025
Tweet

More Decks by Shoichi Kaji

Other Decks in Programming

Transcript

  1. ໨࣍ • Perlͷฒྻ/ฒߦॲཧ • PerlͷforkϞδϡʔϧ • Parallel::ForkManager • Parallel::Prefork •

    ฒྻCPANΫϥΠΞϯτΛ࡞Γ͍ͨʂ • Parallel::PipesΛ࡞ͬͨ • ೔ʑͷPerlεΫϦϓτʹ΋ฒྻॲཧΛ
  2. ฒྻCPANΫϥΠΞϯτΛ࡞Γ͍ͨ! • CPANϞδϡʔϧΛฒྻʹΠϯετʔϧͰ͖ΔCPAN client cpmΛ࡞ͬͨ • "CPANϞδϡʔϧΠϯετʔϧ"ΛɺͦΕࣗ਎͸ಠཱ࣮ͯ͠ߦͰ͖Δࡉ͔͍λεΫʹΘ͚ɺͦΕ Λฒྻʹॲཧ͍ͯ͘͠ઓུΛͨͯͨɻͱͳΔͱࡉ͔͍λεΫΛͲΜͲΜchildϓϩηεʹ౤͛ Δɺॲཧ͕ऴΘͬͨΒଈ࠲ʹ݁ՌΛಘΔɺͱ͍͏࢓૊Έ͕ཉ͍͠ •

    Parallel::ForkManager ? • childϓϩηεىಈ࣌ʹλεΫΛ1ͭ౉ͤΔͷΈͰԿ౓΋౉ͤͳ͍ • ݁Ռͷड͚औΓ͕ fi leϕʔεͩͱɺ݁Ռ͕ग़͍ͯΔ͜ͱʹଈ࠲ʹؾ෇͚ͳ͍ • Parallel::Prefork ? • childϓϩηεͱͷσʔλͷ΍ΓͱΓͷػߏ͸༻ҙ͞Ε͍ͯͳ͍ • childϓϩηεΛ؂ࢹͯ͠΄͍͠Θ͚Ͱ͸ͳ͍
  3. ೔ʑͷPerlεΫϦϓτʹ΋ ฒྻॲཧΛ • Perl͸better shellͱݴΘΕΔ • Έͳ͞Μ೔ʑͷࡉʑͨ͠λεΫΛPerlεΫϦϓτΛॻ͘͜ͱͰ͜ͳ͍ͯ͠Δͱࢥ͏ • ͦ͏ͨ͠εΫϦϓτͰฒྻॲཧΛॻ͘ͷ͸ɺͳ͔ͳ͔ͳ͍Α͏ʹࢥ͏ •

    ҰํͰ Parallel::Pipes::App->mapΛ͔ͳΓͷέʔεͰɺ ૊ΈࠐΈؔ਺mapͷdrop in replacement ͱͯ͠࢖͑Δ • ͪΐͬͱͨ͠΋ͷͰ΋ฒྻԽ͠଎͘ͳΔͱɺલఏ͕มΘΔ 😉 • ೔ʑͷPerlεΫϦϓτʹ΋ฒྻॲཧΛೖΕͯΈΔͷ͸Ͳ͏ ? • ྫ: https://github.com/skaji/binary-install/blob/main/src/lib/App.pm#L500 https://github.com/skaji/build.pl/blob/main/src/lib/App.pm#L242