プロフィール

ニーシェ

Author:ニーシェ
ひっそりと。
こっそりと。

日常の些細な笑いに貪欲に。

お気に召したら
相互リンク宜しくお願いしまふ。

最近の記事

最近のコメント

最近のトラックバック

月別アーカイブ

カテゴリー

ブログ内検索

ブロとも申請フォーム

この人とブロともになる

カウンター

RSSフィード

リンク

このブログをリンクに追加する

amazon ajax

with Ajax Amazon

臆病な白虎。~蛍と遭遇~
映画や音楽、書物に芸術。 表現されたモノに触れ、色褪せる毎日を少し楽しくするためのブログ2。




--PRAY FOR JAPAN--
被災者の方々の無事を心より願います。

ソフトバンクケータイをお持ちの方はこちらから義援金をお願い致します。
softbank 義援金プロジェクト:http://info.mb.softbank.jp/f/disaster/




スポンサーサイト
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。



俺の一尺玉二つ。
2008.10.25(sat)
今日は仕事をしなければいけなかったかので家で作業。
でも家の仕事もばっちりやるいい主夫ぶりを垣間見せる。

・・たんにタオルが全て使いきって洗濯せざるを得ないというだけですが。


でも折角だからと洗濯に始まり
キッチンの掃除、風呂場・トイレ掃除、
そしてフローリングの掃除とね、久々にした訳です。

ただ勘違いして欲しくないのは、
久々だからといってそれまでがめちゃめちゃ汚いって事はないです。

そうです、使ってないだけです。
電気ガス水道全て合わせても6000円前後ですからね毎月。笑。


なので未だにGも出ていません


そうそう。
仕事の話。

いや、情報系じゃなければ別段面白みのある話じゃないんだけど;;
個人的になるほどなーって思ったのでメモ。

今ソースコードの最適化を行っていたんだけど、
メソッド内のローカル変数って

メソッドが多く呼び出される場合、外に出してグローバル変数にした方がいいんでないの?
となんとなく思ってたんです。

main()
{
 int i;
 for(i=0;i < Integer.MAX ; i++)
  functionA();

 return 0;
}

void functionA()
{
 int x;
}

includeもないしちょっとした疑似コードなんですけど;
こんな風に関数functionAを何回も呼び出す度に、
関数ないのローカル変数【x】を呼び出すのってよくないんじゃないかって。

毎回毎回定義するため時間かかるのかなーって思っていたら、



かからないんだね。

これは、これくらいの変数であればメモリーに確保されるのではなく、レジスタに保存されるらしい。
メモリーにアクセスするよりレジスタにアクセスする方が速いので、

関数内に定義しておいた方が速いって事を今日知る。


ちなみにレジスタに格納されないぐらい大きな変数を定義した場合は、
外に出してグローバル変数にした方が速かったです。


これ本日の最大の収穫。


だって、今まで最適化してたのに速くならない所か遅くなる始末だったから。

配列も二次元より一次元の方が高速。
余分な関数はインライン化。
余計な2重ループも取り除いたり。

これだけやって速くならないから泣きそうでした。。

でもそこで気づいたんですよ。
もしかしてこの変数どもがいけないんじゃないかって。


そしたらだいたい40%ぐらい時間カットできました

だいたい1.6倍くらいの高速化に成功。
んー嬉しい

とりあえずこれで仕事おしまい。
会社にその進捗を報告したら久々の給料が僕を待っている



スポンサーサイト

 

この記事に対するコメント


 

この記事に対するコメントの投稿















管理者にだけ表示を許可する


 

この記事に対するトラックバック

トラックバックURL
→http://holyterror23ver02.blog111.fc2.com/tb.php/320-d40e001a
この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。