処理が遅いです>_<

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
あま

処理が遅いです>_<

#1

投稿記事 by あま » 13年前

昨日crypt関数のことで質問させていただきましたが、それを基にトリップ検索のツールを作成しました。
が、処理が遅いです・・・
検索時間があまりにも長いのでマルチスレッドで検索するようにしたのですが、多少早くなったくらいです。

処理速度を上げる方法を教えてください。

あま

Re: 処理が遅いです>_<

#2

投稿記事 by あま » 13年前

ソースをアップして見ていただきたいのですが・・・
アップロード機能はないのでしょうか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 処理が遅いです>_<

#3

投稿記事 by softya(ソフト屋) » 13年前

記入するときの下の方にオプション/ファイル添付がありますのでお使いください。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

あま

Re: 処理が遅いです>_<

#4

投稿記事 by あま » 13年前

□BBCode を無効にする
□URL を自動的にパースしない
□解決!
チェックボックスがこれしかないのですが>_<

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 処理が遅いです>_<

#5

投稿記事 by softya(ソフト屋) » 13年前

すいません。mixC++加入メンバーしか使えない機能みたいです。

この場合何処かのアップローダを使っていただくとか、mixC++にメンバー加入してもらうしか無い様です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

あま
記事: 43
登録日時: 13年前

Re: 処理が遅いです>_<

#6

投稿記事 by あま » 13年前

登録してきましたw
ソース見てください。
実行ファイルも一緒に入れといたので実行してみてください。
Trip.zip
ソース汚いです>_<
(51.15 KiB) ダウンロード数: 137 回

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 処理が遅いです>_<

#7

投稿記事 by softya(ソフト屋) » 13年前

ざっと見た感想を言うと、CPUがほぼ全力でぶん回りますのでCPUコア数を超えるスレッドを使うとかえって速度が低下すると思います。
それとまめに表示するのは、時間の無駄なので出来るだけ表示する割合を減らしてください。
stdoutで時間をロスしていると思います。

最後に、char *word = "123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()=~|`{+*}<>?_-^\\@[;:],./。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚0";
の違いだけみたいなので自動的に生成してやれば1つの関数で復数スレッドを起こす形に出来てスッキリできると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

あま
記事: 43
登録日時: 13年前

Re: 処理が遅いです>_<

#8

投稿記事 by あま » 13年前

softya(ソフト屋) さんが書きました:ざっと見た感想を言うと、CPUがほぼ全力でぶん回りますのでCPUコア数を超えるスレッドを使うとかえって速度が低下すると思います。
それとまめに表示するのは、時間の無駄なので出来るだけ表示する割合を減らしてください。
stdoutで時間をロスしていると思います。

最後に、char *word = "123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ!\"#$%&'()=~|`{+*}<>?_-^\\@[;:],./。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚0";
の違いだけみたいなので自動的に生成してやれば1つの関数で復数スレッドを起こす形に出来てスッキリできると思います。
なるほど。ということは、スレッド数を減らしてprintf("%s\\r",inputs);を消せばもう少し早くなるということでしょうか?
一般的にスレッド処理をするとしたらどのくらいの数が妥当なのでしょうか?

複数のスレッドを一つの関数で出来るのですか!?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 13年前
住所: 東海地方
連絡を取る:

Re: 処理が遅いです>_<

#9

投稿記事 by softya(ソフト屋) » 13年前

あま さんが書きました:[
なるほど。ということは、スレッド数を減らしてprintf("%s\\r",inputs);を消せばもう少し早くなるということでしょうか?
一般的にスレッド処理をするとしたらどのくらいの数が妥当なのでしょうか?
表示を減らせば早くなります。

最適なスレッドの数はCPUのコア数とCPU使用率で決まります。
なのでCPU全力でぶん回す(使う)場合で、1コアのCPUならスレッドを使わないほうが速いです。
あま さんが書きました:[
複数のスレッドを一つの関数で出来るのですか!?
それぞれのスレッドで書き換える変数が独立していればよいので、ローカル変数しか使わないとかスレッド別の配列とかを用意すれば大丈夫です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
toyo
記事: 35
登録日時: 13年前
住所: 宮崎県

Re: 処理が遅いです>_<

#10

投稿記事 by toyo » 13年前

むかし「うとりっぱー」というトリップ検索ソフトのソースが公開されてました
crypt関数のコア部分を逆アセンブルしてMMX命令で手を加えたということで少し早くなっているようです
元はgcc(gas)用だったのでそれをVisualC++(MASM)用にしたのがあります
参考にどうぞ
添付ファイル
tripper.zip
(17.72 KiB) ダウンロード数: 118 回

あま
記事: 43
登録日時: 13年前

Re: 処理が遅いです>_<

#11

投稿記事 by あま » 13年前

返信送れてすみまんせん。
なんとかサマになってきました。
ありがとうございました。

閉鎖

“C言語何でも質問掲示板” へ戻る