
A 回答 (4件)
- 最新から表示
- 回答順に表示
No.4
- 回答日時:
すでに書かれていますが、forkは、プロセスを生成するので、マルチプロセス処理になります。
なので、Parallel::ForkManager で(たとえば)10並列にした場合と、perlコマンドをシェルから10個パラレルに起動した場合とでは、ほぼ同じ処理になります。
No.3
- 回答日時:
>perlでバッチ処理を書いています。
ループ処理に時間がかかるのでParallel::ForkManagerというモジュールを使いマルチスレッド化しています。Parallel::ForkManagerはマルチプロセスを制御するモジュールであってマルチスレッドではないと思いますが。perldoc読んでもプロセスは出てきますがスレッドは出てきませんし。
>ふと思ったのですが、マルチスレッドにせず、単純にこのperlのスクリプトを同じタイミングで複数起動するだけでもマルチスレッド並に速度は向上するのでしょうか?
なので、この場合、起動手順が面倒になるだけで速度は向上しないです。
No.2
- 回答日時:
マルチスレッドは同一プロセス内にあるため、
特別な配慮無しに資源(メモリやオブジェクト)を
共有できます。従って、同期を取ることも比較的
簡単にできます。
マルチプロセスではプロセス空間が異なるため、
資源の共有には特別な処置が必要になります。
また、プロセス固有のメモリ領域が必要なので、
マルチスレッドよりシステムの負荷がかかります。
マシンスペックによって、これが重いか、軽いかの
違いがありますので、ハイスペックのものならば
使用上の差異が殆ど感じられないと思います。
No.1
- 回答日時:
>>マルチスレッドにせず、単純にこのperlのスクリプトを同じタイミングで複数起動するだけでもマルチスレッド並に速度は向上するのでしょうか?
一般論的には、マルチスレッドのほうがマルチプロセスよりも負荷が軽く、速いといわれていますので、速度が向上することは無いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Active Directoryでグループに...
-
時間がかかり過ぎたプロセスを...
-
例外処理のフローチャートの記...
-
Excel VBAで、ユーザーフォー...
-
VBでグローバル変数を宣言するには
-
「デバイスは PRN を初期化でき...
-
VBA This Workbookモジュール...
-
Fortranについて教えてください!
-
ADサーバにおけるログインID,PC...
-
モジュールとサブルーチン
-
モジュールからフォームのボタ...
-
perlでリテラル値はメモリにど...
-
Excel VBAで、ユーザーフォーム...
-
sys/wait.hが見つかりません
-
(Perl CPAN) DBDがはいらない
-
エクセルVBAでシートモジュール...
-
モジュールの最大数はいくつな...
-
SendKeysの使い方について
-
Postfixでメールを受信したらPe...
-
Excelシート内セル記述の違いに...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
AIX6でファイルのタイムスタン...
-
gem install houston
-
bash と Perl
-
cookie 認証をなんとかする方法
-
LinuxにおいてのPerlのプログラ...
-
スクリプトについて教えてくだ...
-
実行中のcpan processを終了さ...
-
perlスクリプト内でシェルコマ...
-
Perlで特定のコマンドを実行さ...
-
Linuxでforkやalarm,wait,waitp...
-
時間がかかり過ぎたプロセスを...
-
並列処理について
-
マルチスレッドとマルチプロセ...
-
forkで作れる子プロセス数が限...
-
Epoch time
-
Perlの処理待ちコマンド
-
common lispのコード
-
my $pid = open PIPE, "-|";の...
-
`ls`標準出力はどこにいった?
-
バックグラウンドで走らせたプ...
おすすめ情報