サーバとの通信の処理を整理

rt_sock.py と img_sock.py が同じようなコードなので、sock.py として括り出してまとめてみました。

あと、あんちょこファイルのsave, loadは、もう役目を終えたようなので廃止しておきます。

v28.patch

$ cat v28.patch | ( cd rt ; patch -p1 )

$ cd rt

$ make clean
$ make

まず、いつものデータで速度比較。

まず従来方式

$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v28/objs_1_2 n=1 init_sec=5 div=2
  :
wh : 76800/76800(100.0%) : fin 7m 42.09s

  以前の
  v27  wh : 76800/76800(100.0%) : fin 7m 45.41s
  v26  wh : 76800/76800(100.0%) : fin 7m 31.17s
  v25  wh : 76800/76800(100.0%) : fin 7m 50.96s
  v24  wh : 76800/76800(100.0%) : fin 7m 44.42s
  v23  wh : 76800/76800(100.0%) : fin 7m 48.33s

イメージ用のサーバプロセスを使う場合は

$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v28/objs_1_2_is n=1 init_sec=5 div=2 use_img_srv
  :
wh : 76800/76800(100.0%) : fin 8m 5.03s

  以前の
  v27  wh : 76800/76800(100.0%) : fin 8m 19.96s
  v26  wh : 76800/76800(100.0%) : fin 8m 12.84s

サーバプロセス分離版

$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v28/objs_1_2_s n=1 init_sec=5 div=2 use_srv
  :
wh : 76800/76800(100.0%) : fin 9m 34.23s

  以前の
  v27  wh : 76800/76800(100.0%) : fin 9m 18.49s
  v26  wh : 76800/76800(100.0%) : fin 9m 22.96s
  v25  wh : 76800/76800(100.0%) : fin 9m 34.91s
  v24  wh : 76800/76800(100.0%) : fin 9m 38.24s
  v23  wh : 76800/76800(100.0%) : fin 9m 9.07s

イメージ用のサーバプロセスを使う場合は

$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v28/objs_1_2_s_is n=1 init_sec=5 div=2 use_srv use_img_srv
  :
wh : 76800/76800(100.0%) : fin 10m 9.66s

  以前の
  v27  wh : 76800/76800(100.0%) : fin 9m 53.40s
  v26  wh : 76800/76800(100.0%) : fin 9m 54.44s

別プロセスのところをC言語で実装版

$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v28/objs_1_2_sc n=1 init_sec=5 div=2 use_srv srv_c
  :
wh : 76800/76800(100.0%) : fin 1m 3.32s

  以前の
  v27  wh : 76800/76800(100.0%) : fin 53.66s
  v26  wh : 76800/76800(100.0%) : fin 53.40s
  v25  wh : 76800/76800(100.0%) : fin 53.95s
  v24  wh : 76800/76800(100.0%) : fin 54.07s
  v23  wh : 76800/76800(100.0%) : fin 1m 50.29s

イメージ用のサーバプロセスを使う場合は

$ ./cg.py eyep=[0,0,0],200,10 sec=10 data_name=objs name=out_v28/objs_1_2_sc_is n=1 init_sec=5 div=2 use_srv srv_c use_img_srv
  :
wh : 76800/76800(100.0%) : fin 1m 18.06s

  以前の
  v27  wh : 76800/76800(100.0%) : fin 1m 8.39s
  v26  wh : 76800/76800(100.0%) : fin 1m 6.02s

肝心の「別プロセスのところをC言語で実装版」で、大きく低下してるのがまずいですね。 サーバからの結果を受け取ってからの処理に手を入れてる影響かもしれません。 1度listにしてからdictにしてるので、もうちょっと良く考えるべしですね。

v25で生成した動画と、その続きとしてv27で生成した動画をつないでおきます。

$ ./img.py tmp/a1 out_v25/bw_near_2.mp4 cmd=v2i
$ ./img.py tmp/a2 out_v27/bw_near_2.mp4 cmd=v2i
$ ./img.py tmp/a out_v28/bw_near_2.mp4

$ ls -l out_v28/bw_near_2.mp4 
-rw-r--r--  1 kondoh  staff  2437277  4 24 01:20 out_v28/bw_near_2.mp4

セーフ。まだ3Mバイトを超えてません。