UNIXからLinuxへの移植を行っています。
通常Linuxに移植した場合、Linuxの性能上 処理時間が短縮されると聞いていますが、
UNIXのシェルで作成されているプログラムを移植しましたところ、逆に処理時間が遅延してしまいました。
シェルのどの部分で時間がかかっているか調べましたところ、「gawk」コマンドで時間がかかっている模様です。
(gawk実行時間 UNIX:21行/秒、Linux:5行/秒)
(gawk -v dat=$key -v rno=$RECNO 'BEGIN{FS=",";OFS=","}{if(dat == $18){$18=rno substr($18,5);print $0} else {print $0}}' $MOTOOBJ > $KEKKAOBJ)
時間短縮を目標に作業を行っていますので、遅延するのであれば 理由を提出しなければなりません。
ご存知の方がおられましたら、ご教授願います。
よろしくお願いいたします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
大きな csv みたいだから、物理ディスクとかファイルシステムの違いが大きく影響すると思うよ。
とりあえず出力を >/dev/null にしてみてもう一度時間を比較してみるのはどう?
No.1
- 回答日時:
> 通常Linuxに移植した場合、Linuxの性能上 処理時間が短縮されると聞いていますが、
そうとは限りません。同じLinux 上でも bash(デフォルト と
ashでは全然処理速度が違います。(ashの方が速い)
それは当然ですよね? やっていることは同じでも実装が異なるわけですから。
awkも同じです。Unix(SolarisかHP-UXかAIXかは知りませんが)のawkの実装と
gawkの実装は全く別物です。
なので、Unix上で速いコマンド、Linux上で速いコマンドがあるのは当然のことです。
gawkについて言えば、マルチバイトを無効にする(環境変数LANGをCに設定する)
ことで、ご提示いただいたプログラムは4倍くらい高速になるようです。
ただし、keyにマルチバイト文字を含む場合、substrが文字単位ではなく、
バイト単位で解釈されます。
Unixのawkの中にはそもそもマルチバイトを扱えない実装もあるでしょうから、
結果としてUnixのawkの方が高速になっているだけかもしれません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- その他(プログラミング・Web制作) awkの$NR 2 2022/10/24 11:11
- 物理学 光速度に近い速度で移動しても、時間や時計の動きが遅くなる?等は、あり得ない。 3 2022/09/24 00:47
- その他(開発・運用・管理) bashで15分前と現在のエポックタイムの時間を取得したい 2 2023/02/01 19:10
- UNIX・Linux Linuxについて質問です。 以下のような設定をしたMakefileを作成するにはどう記述すればよい 1 2023/02/03 20:10
- 宇宙科学・天文学・天気 ミューオンの寿命について 5 2023/01/24 17:15
- その他(プログラミング・Web制作) テキストデータ変換(プログラミング、linux、python) 8 2023/08/08 16:39
- Windows 10 外部ドライブにマウントできない問題について 9 2022/03/22 18:08
- UNIX・Linux Linuxについて質問です。 以下のhistoryの出力結果から、sedコマンドのファイル名tmp1 1 2023/02/03 20:11
- 物理学 時間を語るなら、(複数の時間の正体)を知る必要が有る。 1 2023/02/16 22:14
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ubuntu(linux)のシャットダウン...
-
ubuntuのシャットダウンが進ま...
-
Ubuntu系とCentOS系の違いはな...
-
Ubuntuで数字だけのユーザーア...
-
ubuntuで デイスク/deb/loopと...
-
bashでシングルクォート内の変...
-
AWSでSSH接続をしたいのですが...
-
プログラミングPC、LinuxのOSパ...
-
Linux(Fedora30)のブートディ...
-
Rasberry pi のオンボードNICの...
-
新しく買ったWin11のPCでLinux...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
Windowsのローカルディレクトリ...
-
en_US.UTF-8ロケールってどのPO...
-
Ubuntu on Xorgのログインについて
-
ワイルドカードの使い方
-
VertualBox でのLinux Mint の...
-
TCPWrapper のインストールにつ...
-
ホストオンリーアダプタで接続...
-
Kali Linuxで起動できない - Mi...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
bashでシングルクォート内の変...
-
ubuntu(linux)のシャットダウン...
-
AWSでSSH接続をしたいのですが...
-
Linuxのパーティション番号の変...
-
ubuntuで デイスク/deb/loopと...
-
自作のウェブサイトを友人に見...
-
ubuntuのシャットダウンが進ま...
-
[Linux初心者]Ubuntu22.04.3LTS...
-
Ubuntu系とCentOS系の違いはな...
-
Ubuntu on Xorgのログインについて
-
Windowsのローカルディレクトリ...
-
tarで纏める際に、複数場外した...
-
Linux のシェルスクリプトの強...
-
Ubuntuで数字だけのユーザーア...
-
linuxサーバーのキャッシュをク...
-
shellscript内のコマンドを、su...
-
ssl_request_logの必要性について
-
ubuntuのサーバー(virtual box)...
-
Kali Linuxで起動できない - Mi...
-
ホストオンリーアダプタで接続...
おすすめ情報