2017年11月07日

M/M/sの窓口理論とsimpy

うん、難しい数学の話はよくわからんので、無し。(´・ω・`)
工学屋としてはいいから結果と道具を寄越せ、理屈は任せるスタンスで。
(ある程度は理解しないとあかんけどねぇ・・。)

んで、何かというと WebSphereのコネクションプールとか、スレッドプールとかの
キューイングネットワークの設定するときによく使われる窓口理論なんだけど式がややこしいあれ。
なんとか過程とか分布とかいわれても統計学やってないとさっぱりだと思う。
ならばシミュレーションしてみよう。
理屈はよくわからんが、どのぐらい必要かわかればよいのだ(ぉ

(1)pythonを用意しよう
(2)pip install simpy

あとはsimpyのチュートリアルとにらめっこして、youtubeのチュートリアルを見て
コネコネしてみる。

・コネコネしていてわかったこと

  シミュレーション単位はミリ秒でやったほうがよい。少数秒でやるとpythonの処理の遅延でうまくシミュレートできない。
  
  random.expovariate(1.0/transactionTime) の意味は 収束させたい数(transactionTime)の逆数を引数に入れる。
  間隔が指数分布になっていると到着率がポアソン分布になるので、結果がマルコフ過程に\(^o^)/ウボア

  リソースの獲得待ちはwithで
          with self.res.request() as req:
               yield req

  時間を消費するのを待つところ
    yield env.timeout(generate_timimg)

  このgenerate_timimgの扱いがよくわかってない(´・ω・`)
  これも指数分布にしていいのか、なんでもいいのか、固定値なのか、で結果変わります。

  15分分シミュレーションするなら、以下のように(ミリ秒単位)
  env.run(until=1000*60*15)  # 15分シミュレーション(unit=msec)
  
珍しく備忘録だな、こりゃ。(゚Д゚)


posted by koteitan at 11:30| Comment(0) | python | このブログの読者になる | 更新情報をチェックする

2017年11月02日

Windowsのみでファイル行数をカウント

セキュリティ目的とはいえなんのスクリプトもツールも無しで
手足を奪ってから効率効率って、いうね(´・ω・`)

無いなら無いでなんとかするけど、プチっとイラっとするね。
いちいちエディタで開いて行を確認して、エクセルにコピペとかやってんですかね?

こちらを参考にコマンドプロンプトでどうにかしました。
%%iはバッチファイルに書くときの書き方なので、コマンドプロンプトに直接入力する場合は、
%を一つ減らして、%iと書いてね。




コマンドプロンプトでファイルの行数を数える方法

for /F %%i in ( filelist.txt ) do type "%%i" | find /c /v "" >> num.txt
posted by koteitan at 14:05| Comment(0) | その他備忘録 | このブログの読者になる | 更新情報をチェックする
×

この広告は90日以上新しい記事の投稿がないブログに表示されております。