http://2log.blog9.fc2.com/blog-entry-51.html
> 3 名前:いい気分さん[] 投稿日:2001/01/16(火) 16:22 > 君が立ち読みを止めるまで、僕はポリッシャーをやめないぃぃぃ!
身に覚えがありすぎ。
「(その 1 円玉は) 無駄無駄無駄無駄無駄無駄無駄無駄無駄無駄―――ッッッ!!」
ということも、ないことはない。
それで思い出したが、 「コンビニで最適化を説明する」というネタをいつかやろうと思っていたんだ。
出された金額がちょうどのときは レジで金額を打たずに「客層」ボタンだけでトランザクションを終了できる。
お客さんが低速な場合、できる限り早い段階で荷物を受け取ってしまうほうが高速。
値段が 705 円とすると、500 円玉と 10 円玉を出された時点で 合理的な支払い候補は 710 円に限定される。 したがって、すべての小銭を出し終わる前に値段を打ってもよい。
前項の例において、「あ、すみませんやっぱり 1000 円で」例外により 予測が外れる場合がある。このときは金額を打ち直すか自分で暗算する必要がある。
品出しのとき、毎回バックヤードまで取りにいっているとレイテンシが許容できなくなる。 かごやパレットを使ってまとめて運ぶのがよい。
1. ときどき、一生懸命バーコードを上にして出そうとするお客さんがいるのだが、 店員はバーコードの位置なんてわかっているのでやるだけ時間の無駄である。
2. お金を出すのが遅い人の場合、がんばって小銭を探すより 店員に小銭をたくさん出させたほうが速い。
1. 弁当を温めているあいだに次のトランザクションを処理できる。 また、弁当が 2 個以上の場合は複数の電子レンジを使ってよい。 ただし電子レンジは共有リソースなので、排他処理をしておかないと そそっかしい店員がフタを開けてしまって何秒温めたかわからなくなることがある。
2. 品出しとレジ対応はより細かい時間単位に分割して処理できる。 しかし、ゴミのかたづけやジュース補充はコンテキストスイッチの オーバーヘッドが大きいので、できるだけアトミックに処理すべきである。
3. なんらかの理由により支払いの途中で客がレジを離れた場合、 レジの「保留」機能により次のトランザクションを先に処理できる。 しかし一方に宅急便や Fami ポート、クレジットカード支払いなどが含まれる場合は適用できない。 またネストは一段に限定されるので、並列処理できるのは高々 2 トランザクションである。
4. ある程度経験を積んだ店員ならば、 新聞やジュース一本で釣銭が発生しないような単純なトランザクションでは レジ入力を遅延処理できる (別トランザクション中に処理できる → スループット向上)。
5. 宅急便の伝票を書いてもらっている間に次のトランザクションを処理できる。 なお、3 項を考慮すると、 混んでいるときは宅急便の入力をできるかぎり遅延したほうがよいことがわかる。
6. 逆に、店が空いているときは郵便番号と市がわかった時点で入力を開始すると トランザクションを最短時間で処理できる。
引き継ぎ処理 (レジのお金を数えること) のときには手順を工夫して レジが完全に塞がる時間を短かくしないとレジのスループットが有意に低下する。 店が混んでいるときにはレジ打ちを リアルタイムプロセス扱いにしたほうがよい (レジが塞がる時間の最長時間を保証するという意味)。
以上のようにせせこましく最適化しても、 トラブルが一発起こるだけでチャラになる。 また、レジ対応はトランザクション数も多く優先度も高いので目立ってしまうが、 トータルで見たときに削減できる時間は少ない。 それよりも、品出しやジュース補充のピーク速度を上げたり、 そのスケジューリングを熟考するほうがよい。
(02:07)
Sun がノートで UltraSPARC III かよ。Solaris かよ。 どうしよう、すげえ欲しくなってきた。
とーぜん RS232-C もついてるし。
ていうか HDD が SCSI ですかっ?! やべーこれはもう笑うしかない。
いくらくらいなんだろうなあ。 UltraSPARC III モデルだと 50 越えちゃう感じですか?
(04:31)
Copyright (c) 2002-2007 青木峰郎 / Minero Aoki. All rights reserved.
小銭を出すのが遅い人の場合、最適化オプションがOptimize for size(客のサイフの)になってる場合があります。
そこでマルチスレッド化技術デスヨ!(処理資源のボトルネック(人間)があるため意味が無い)
レジの小銭に関して -Os やられる場合もありますね。
駐車場の金が払えないとか言われてもー。
分身するのか > スレッド
もういっこ考えついた
ベクトル演算
ジュースなどを詰めるとき、二本以上同時に詰めることができる。