約 47,161 件
https://w.atwiki.jp/registry/pages/199.html
スーパーラビットレジストリ最適化 オフィシャルサイト http //www.superrsoft.com/jp/index.htm ダウンロード OS(Windows) 98/ME/2000/XP/2003 言語 日本語 日本語化パッチ 記事 備考 評価 選択肢 投票数 投票 非常に良い 0 良い 1 どちらでもない 0 悪い 0 非常に悪い 0
https://w.atwiki.jp/compilerandscriptengine/pages/13.html
最適化 SSA最適化 データフロー解析? ループ並列化? SSA変換? CPS変換? レジスタ割付? 命令スケジューリング? ソフトウェアパイプライン? SIMD命令生成? VLIW向けクラスタリング? スクラッチメモリ向け最適化? リンク時最適化? JIT 動的バイナリ変換等の各種最適化? VM? GC? 低消費電力化? どれが最適化なんだろう?謎だ。
https://w.atwiki.jp/bousoku/pages/293.html
最適化とは、タイピングの打ち方を変えることによりより良い打ち方をする方法である。 狭義的にホームポジションを崩すことを表す場合がある。だが必ずしもホームポジションを崩しているというわけではなく 広義的にはホームポジションかどうかに一切言及せず自分が一番打ちやすい方法で打つことを意味する。 普通は後者の意味を指す。最適化には色々な方法がある。 具体的な方法 *主に一般的に普及しているQWERTY配列での方法 運指的最適化 たとえば「ぶらぶら(burabura)」という単語を考えてみると、ホームポジション的に打てば左手人差し指をbで打つだろう。一度打ってみてほしい。 次に、左手人差し指でbを打たず右手人差し指でbを打ち且つ右手中指でuを打ってほしい。どうだろうか?とても速く打てるはずである。 このようにホームポジション的な通例の打ち方を改め、より速く打つ方法に変えることを最適化と言う。 特に今回の例のように指の動かし方を変えることを「指運的最適化」と言う。 他にも様々な方法があり次にその一例を挙げるが、便宜上右手のことを「右」、左手のことを「左」、 人差し指、中指、薬指、小指、親指のことを「人」「中」「薬」「小」「親」と訳し「右人」「左中」と記述することにする。 「牛乳(gyuunyuu)」の二度目のyの部分を右人ではなく左人で打つ。 「ぬ(nu)」「む(mu)」右人-右人と打つのではなく右人-右中で打つ。 音引き「-」を小指ではなく薬指で打つ。 これにより人差し指を移動させる負担が減り速く入力できしかも疲れにくい。 文字的最適化 「ぴかぴか」→「pikapika」ではなく「picapica」と打つようにどの英字を打つかを変えることを「文字的最適化」と言う。 他にも一例を挙げると 「むかむか」→「mukamuka」ではなく「mucamuca」 「にくい」→「nikui」ではなく「nicui」 「ふらふら」を打つ時は、「fu」を使うのではなく「hu」使い、「hurahura(uは右手中指)」 「U」の後が「M」「N」「B」ならば「U」を右手中指で打ち、「M」「N」「B」を人差し指で打つ 例・熊、曇り、ウナギ、ディズニー、素晴らしい、ルビー くは「CU」で打つ 上記に示した例以外ももちろんあるので自分で色々な方法を試してみてほしい。 同じ単語でもいくつかの最適化の方法があるがどれが合うかは人により個人差があるので自分が一番打ちやすいものを選べばいい。 かな入力や他の入力方法(dvorak)などでも最適化することができる。 最適化の起源 最適化の基本となる概念は以前から存在していただろうが、 これを広めた先駆者(主にタイピング界に)とされているのはたにごんとされている。 Pocariとは対照的に、ホームポジション的な打ち方を根本的に改変し、独自の打ち方を確立した。
https://w.atwiki.jp/abcdmousou/pages/311.html
最適化 Sorcery 2(-) / 50f あなたのライブラリの全てのクリスタルをゲームから取り除く。 ドローストック+2 ■リサイクル[3(-) / 0f] 最適化を捨て、カードを一枚引く。 -- 優秀な司令官は兵を戦死させない。より優秀な司令官は兵を「犬死に」させない。 http //jbbs.livedoor.jp/bbs/read.cgi/game/27456/1135510382/978 コメント欄 名前 コメント
https://w.atwiki.jp/nullpomino/pages/50.html
180度回転が絡んだ最適化 保守
https://w.atwiki.jp/handai_shiketai/pages/39.html
基本情報 授業名 最適化 開講区分 2013年度前期 曜限 火曜日3限 教室 一番教室 詳細情報 授業の方法 ??? 成績評価方法 ??? 教科書 書名 :???著名(訳者):???出版社 :??? 学習のアドバイス ??? シケプリ 過去問 2011年度過去問問題1 2011年度過去問問題2 2011年度過去問問題3 2011年度過去問問題4 2012年度過去問問題1 2012年度過去問問題2 2012年度過去問問題3 2012年度過去問問題4 2015年期末試験1 2015年期末試験2
https://w.atwiki.jp/ce00582/pages/2356.html
最適線形 (1)プログラム http //www15.atwiki.jp/ce00582/pages/5232.html (2)コメント JAVAで書くのは苦労した。 (2)作業記録 9月15日 ページ修正 11年7月13日 ページ修正
https://w.atwiki.jp/tetrismaps/pages/107.html
※本サイトでは最適化の意味や内容については触れず、操作方法のみ記載する。 (要はテトリスするなら最適化の意味くらいggrksってことだで^^;) (説明するのがめんどくさいだけだけどね・・・・) 最適化操作方法 最適化操作方法について記述する前に、一つ知っておかなければならないことがある。 ミノの出現時S,Z,T,L,Jミノは画面左側に寄っているということ。O,Iミノとの違いを画像にしてみた。 他のミノも同様である。 これを知っているか知っていないかで大きな差が出るため最適化するにあたって頭に入れておいてもらいたい。 ※今回のテト譜はコメント欄に操作方法が記入されているのだが、「、」読点で前の操作をやめてから次の操作に移ってほしい Oミノ 習得レベル:★☆☆☆☆ Oミノの最適化方法が一番パターンが少なく初心者が一番初めに覚えやすいミノである。 Oミノ最適化 Iミノ 習得レベル:★★☆☆☆ Iミノの置きミスは致命傷になるためしっかりと覚えておくことを推奨する。 Iミノ最適化 Sミノ 習得レベル:★★★☆☆ Sミノは見た目以上に最適化が簡単なためしっかりと覚えよう。 Sミノ最適化 Zミノ 習得レベル:★★★☆☆ Sミノ同様しっかりと覚えよう。 Zミノ最適化 Lミノ 習得レベル:★★★★☆ Lミノを最適化できたらゴールはすぐそこ! Lミノ最適化 Jミノ 習得レベル:★★★★☆ Lミノ同様だが、間違えないように気を付けよう。 Jミノ最適化 Tミノ 習得レベル:★★★★★ Tミノが最適化できたらエキスパート達成! Tミノ最適化 第二最適化 第二最適化についてもここに書いちゃう!w 第二最適化とはSZにのみある最適化コースである。 知っていて損はないから見てみるといいだろう 第二最適化 練習方法 ミノの置き方意識しておいてみ?多分50回くらいやったらいつの間にかできるようになってるから。 あとは鍛錬!!!!!!!!俺にできることはしたので後は自分で頑張って、どうぞ。 ちなみに、最適化上級者編についてはこちらからどうぞ
https://w.atwiki.jp/msx-sdcc/pages/35.html
sdccのCコンパイラの最適化はデフォルトで有効化される。 部分的にオプションを指定することで最適化を無効化したり、有効化する。 sdcc -c -mz80 [optimizer option] source.c 基本的な最適化オプションは以下のとおり。 option 内容 --nogcse コード全体でsubexpressionを除去しない。これはCコード上に現われる部分式の共通部分について、最適化コードが短縮化することを避ける。対象はループなどに限らない。詳細は8.1.1に記載がある。 --noinvariant forループ構文条件下などで不変な部分式を検出しループ外に置き定数化する最適化を行なわない。詳細は8.1.4 --noinduction 同じくforループ構文中などのループインダクション最適化を行なわない。このオプションではループ条件下の配列インデクス掛け算などを加算に置き換え変更しない。 --nojtbound switch文の時の境界条件チェックをしない。 --noloopreverse forループ構文中などのループ境界チェックをしない。 --nolabelopt アセンブラ中のラベルに対する最適化をしない。この結果アセンブラリストが読みやすくなる。 --no-xinit-opt memcpy()を用いる際にcode領域からdata領域に対して行なうなどの場合にメモリーの初期化コードを用いない。 --nooverlay ローカル変数や関数の引数はRAM上に配置される際、変数の配置場所のオーバーレイなどをおこなわない。これは拡張メモリなどに関係するだろう。 --no-peep Peep hole最適化を行なわない。このpeep hole最適化は特にアセンブラ命令コードレベルのルールベースのパターンマッチングによるコードの無駄を削減するための最適化を行なう。 --peep-asm Peep hole最適化について、インラインアセンブラ部分は無効としパスする。 --peep-return Peep hole最適化による関数などのリターンコード部分を最適化する。これはデフォルト動作である。デバック時には無効である。 --no-peep-return リターンコードの最適化を行なうPeep hole最適化を無効とする。 --opt-code-speed 可能な限りコードサイズを無視して早いコード生成をおこなう。 --opt-code-size 可能な限りスピードを無視して小さなメモリサイズのコード生成をおこなう。 --fomit-frame-pointer ローカル変数が関数内で利用されていない場合に変数へのフレームポインタ処理を省略する。 そのほかdead code最適化(未使用の変数や関数の削除)やcopy code最適化(変数の値の複写の際、変数参照から定数に変更)なども可能らしい。 コンパイル時に最適化を無効化する場合は以下 sdcc -c -mz80 --nogcse --nooverlay --no-peep --noinvariant --noinduction --nojtbound --noloopreverse --nolabelopt --no-xinit-opt source.c 特に指定しない場合は幾つかの最適化が有効となる。 sdcc -c -mz80 source.c 特定のオプションを有効ならば↓ sdcc -c -mz80 --opt-code-size source.c コンパイラが作成するアセンブラをデバックする場合は最適化は全て無効化する方が良いだろう。 最適化オプションの例 以下のソースを最適化有り、無しで比較する。 #include stdio.h void main(void){ int i=999; int j; int k; float a=123.4; for(k=0; k 10; k++){ j=(int)a; printf("%d %d",i,j); } } 最適化無しの時のコンパイルオプションは以下 sdcc -c -mz80 --nogcse --nooverlay --no-peep --noinvariant --noinduction --nojtbound --noloopreverse --nolabelopt --no-xinit-opt src.c アセンブラソースは以下 0000 48 _main_start 0000 49 _main 0000 DD E5 50 pushix 0002 DD 21 00 00 51 ldix,#0 0006 DD 39 52 addix,sp 0008 21 F8 FF 53 ldhl,#-8 000B 39 54 addhl,sp 000C F9 55 ldsp,hl 56 ;src.c 5 int i=999; 000D DD 36 FE E7 57 ld-2 (ix),#0xE7 0011 DD 36 FF 03 58 ld-1 (ix),#0x03 59 ;src.c 8 float a=123.4; 0015 DD 36 F8 CD 60 ld-8 (ix),#0xCD 0019 DD 36 F9 CC 61 ld-7 (ix),#0xCC 001D DD 36 FA F6 62 ld-6 (ix),#0xF6 0021 DD 36 FB 42 63 ld-5 (ix),#0x42 64 ;src.c 10 for(k=0; k 10; k++){ 0025 DD 36 FC 00 65 ld-4 (ix),#0x00 0029 DD 36 FD 00 66 ld-3 (ix),#0x00 002D 67 00108$ 002D 68 00101$ 002D DD 7E FC 69 lda,-4 (ix) 0030 D6 0A 70 suba, #0x0A 0032 DD 7E FD 71 lda,-3 (ix) 0035 DE 00 72 sbca, #0x00 0037 E2r3Cs00 73 jpPO, 00109$ 003A EE 80 74 xora, #0x80 003C 75 00109$ 003C FAr42s00 76 jpM,00102$ 003F C3r75s00 77 jp00105$ 0042 78 00102$ 79 ;src.c 11 j=(int)a; 0042 DD 6E FA 80 ldl,-6 (ix) 0045 DD 66 FB 81 ldh,-5 (ix) 0048 E5 82 pushhl 0049 DD 6E F8 83 ldl,-8 (ix) 004C DD 66 F9 84 ldh,-7 (ix) 004F E5 85 pushhl 0050 CDr00s00 86 call___fs2sint 0053 F1 87 popaf 0054 F1 88 popaf 0055 4D 89 ldc,l 0056 44 90 ldb,h 91 ;src.c 12 printf("%d %d",i,j); 0057 11r7As00 92 ldde,#__str_0 005A C5 93 pushbc 005B DD 6E FE 94 ldl,-2 (ix) 005E DD 66 FF 95 ldh,-1 (ix) 0061 E5 96 pushhl 0062 D5 97 pushde 0063 CDr00s00 98 call_printf 0066 F1 99 popaf 0067 F1 100 popaf 0068 F1 101 popaf 0069 102 00103$ 103 ;src.c 10 for(k=0; k 10; k++){ 0069 DD 34 FC 104 inc-4 (ix) 006C C2r72s00 105 jpNZ,00110$ 006F DD 34 FD 106 inc-3 (ix) 0072 107 00110$ 0072 C3r2Ds00 108 jp00101$ 0075 109 00104$ 0075 110 00105$ 0075 DD F9 111 ldsp,ix 0077 DD E1 112 popix 0079 C9 113 ret 007A 114 _main_end 007A 115 __str_0 007A 25 64 20 25 64 116 .ascii "%d %d" 007F 00 117 .db 0x00 118 .area _CODE 119 .area _CABS 最適化オプション有りの場合 sdcc -c -mz80 src.c アセンブラソース 0000 48 _main_start 0000 49 _main 50 ;src.c 10 for(k=0; k 10; k++){ 0000 11 0A 00 51 ldde,#0x000A 0003 52 00103$ 53 ;src.c 12 printf("%d %d",i,j); 0003 01r1Ds00 54 ldbc,#__str_0 0006 D5 55 pushde 0007 21 7B 00 56 ldhl,#0x007B 000A E5 57 pushhl 000B 21 E7 03 58 ldhl,#0x03E7 000E E5 59 pushhl 000F C5 60 pushbc 0010 CDr00s00 61 call_printf 0013 F1 62 popaf 0014 F1 63 popaf 0015 F1 64 popaf 0016 D1 65 popde 0017 1B 66 decde 67 ;src.c 10 for(k=0; k 10; k++){ 0018 7A 68 lda,d 0019 B3 69 ora,e 001A 20 E7 70 jrNZ,00103$ 001C C9 71 ret 001D 72 _main_end 001D 73 __str_0 001D 25 64 20 25 64 74 .ascii "%d %d" 0022 00 75 .db 0x00 76 .area _CODE 77 .area _CABS 前者ではメモリーに変数が保存され読み書きされているが、後者はレジスタに定数化されている。 型のキャストは、前者はきちんとコードが実行されるが、後者は最適化される段階で型変換がコンパイラ処理により行なわれている。 また後者は全体としてソースのサイズも短い。 MSDOSのCコンパイラは標準ライブラリ全てがリンカで結合されるためにexeのバイナリ ファイルサイズが極端に大きくなるが、 SDCCはビルド時に参照されている関数やライブラリのみが選択的にリンクされるため 実行形式やバイナリの肥大化はおこらない。
https://w.atwiki.jp/compilerandscriptengine/pages/14.html
SSA最適化 SSA形式 Static Single Assignment form 静的単一代入形式の略 変数をユニークにするために添え字を付けた中間表現形式 例 a = 1 a = a + 1 を a0 = 1 a1 = a0 + 1 と書き換えると、ユニークになる。 http //www.coins-project.org/COINSdoc/lirOpt/ssa.html SSA最適化で行える最適化 コピー伝播 条件分岐を考慮した定数伝播 支配関係に基づく共通部分式除去 無用命令除去 無用φ命令除去 空ブロック除去 ループ不変計算のループ外移動 ループの帰納変数に関わる演算の強さの軽減と判定の置き換え SSA変換 支配辺境を用いる方法(Cytronらによる方法) DJグラフを用いる方法による変換時間(Sreedharらによる方法) α変換ともいう? http //min-caml.sourceforge.net/tutorial-mincaml-10.htm SSA形式からの逆変換 Briggsらの方法 Sreedharらの方法 Sreedharらの方法に優位性がある。