HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2013
1014
sumiaHSP起動時にtimeBeginPeriod(1)が実行されることについて4解決


sumia

リンク

2013/10/14(Mon) 10:46:23|NO.57602

おそらくawaitの精度を上げるためだと思いますが、HSPプログラム起動時に自動的に
timeBeginPeriod(1)が実行される仕様になっていますが、これは疑問が残ります。
timeBeginPeriodで設定したタイマー精度は実行したプロセスだけでなく、システムや同時に
実行している他の全てのプロセスにも影響を与えます。
具体的な不具合を認識しているというわけではないですが、timeBeginPeriodの説明に必要が無く
なればすぐにtimeEndPeriodを実行するようにかかれていることや、なぜデフォルトの精度は10msに
なっているのかなどを考えれば必要もないプログラムまでtimeBeginPeriod(1)を実行する仕様は
やめた方がいいと思います。
awaitの精度を上げたい場合だけプログラマが指定して上げられる仕様にすべきだと思います。



この記事に返信する


おにたま(管理人)

リンク

2013/10/14(Mon) 11:02:02|NO.57603

貴重なご意見ありがとうございます。
今後のバージョンでは仕様について検討していきたいと思います。



sumia

リンク

2013/10/14(Mon) 11:03:08|NO.57604

補足として英語版のtimeEndPeriodには以下の説明がされてます。
http://msdn.microsoft.com/en-us/library/windows/desktop/dd757624(v=vs.85).aspx

This function affects a global Windows setting.
Windows uses the lowest value (that is, highest resolution) requested by any process.
Setting a higher resolution can improve the accuracy of time-out intervals in wait functions.
However, it can also reduce overall system performance, because the thread scheduler switches tasks more often.
High resolutions can also prevent the CPU power management system from entering power-saving modes.
Setting a higher resolution does not improve the accuracy of the high-resolution performance counter.



check

リンク

2013/10/14(Mon) 11:29:11|NO.57605

本当は精度を上げるとすべてのプログラムに影響を及ぼすので、
やりたい事が終わったらすぐに戻すべきなんだけれどな。

というか、俺は今初めて知ったぞ。
HSP起動時にタイマーの精度が上げられていたなんて。



Kirito

リンク

2013/10/16(Wed) 14:03:43|NO.57631

というかtimeBeginPeriod実行してるんならなぜawaitの精度が低いんだ?www
awaitの精度上げてくれよ!精度選べるなんていうのは初心者が混乱するだけだからやめてくれよな!
それにHSPがtimeBeginPeriodやってなかったとしても、他のプログラムがやってたら意味ないしさ!



ONION software Copyright 1997-2023(c) All rights reserved.