トップ «前の日記(2014-05-21(Wed)) 最新 次の日記(2014-05-23(Fri))» 編集

屑俺日記

僕の備忘録(PC、UN*X、ネットワーク関連が中心)なんです。
自分の書いたところは適当(な時とか)に書き換えますので御了承を。


2014-05-22(Thu) ちょっと曇って、少し暑く

一秒間ずっとHello, World

しばらく嵌っていたが、考えてみれば 大した工夫は要らなかった。
手許のUbuntu-12.04 で、

import time
from_time = int(time.time())
after = 0
count = 0
while from_time + 1 > after:
  count += 1
  print count, "Hello, World!"
  after = int(time.time())
$ python timetest.py
1 Hello, World!
2 Hello, World!
3 Hello, World!
.
.
.
19222 Hello, World!
19223 Hello, World!
19224 Hello, World!

回数にはずいぶん幅があった。2000回を下回ったり、 30000回を上回ったり。

$ python timetest.py | wc -l
335148
 
$ python timetest.py | wc -l
8312

int() を削除すると、ばらつきはかなり減ったみたい。

int()二ヶ所を取り除き、Raspbianで試す。端末に流すと3200回前後、 wc -l に通すと 17000回前後といったところか。

GPIOのI/O回数

"Hello, World"のあたりをGPIO.OUT/IN に変えてみた。
ついでに、GPIOのアクセス間隔も計算してみる。

#!/usr/bin/env python
import time
import RPi.GPIO as GPIO
 
GPIO.setmode(GPIO.BCM)
GPIO.setwarnings(False)
 
from_time = time.time()
after = 0
count = 0
gpio_port = 28
 
while (from_time + 1) > after:
  GPIO.setup(gpio_port, GPIO.OUT)
  GPIO.setup(gpio_port, GPIO.IN)
  count += 1 
  after = time.time()
 
print count, 1.0/count, "Hello, World!"
$ sudo python gp_io.py 
22220 4.500450045e-05 Hello, World!
$ sudo python gp_io.py 
26056 3.83788762665e-05 Hello, World!

IN/OUTの切り替えに50マイクロセコンド程度 といったところか。
python3 向きに少し変えて(print文を) 試すと、やはり少し遅くなった。


リンクはご自由にどうぞ。でもURLや内容が変った場合はあしからず。

index.htmlは ここから。