toppers / hakoniwa-core-cpp-client

5 stars 3 forks source link

箱庭時間とアセット時間を、アセット毎にCSVファイルに書き出す機能を追加する #60

Closed tmori closed 2 months ago

tmori commented 2 months ago

仕様

機能

箱庭アセット時間とコア時間をCSV出力する。

入力

出力

現在時間は、gettimeofday()値から求める。

切り分けフラグ

ENABLE_HAKO_TIME_MEASURE

tmori commented 2 months ago

詳細設計

CSVファイル作成タイミング

箱庭アセット登録タイミング:hako_asset_impl_init()

CSVファイル書き込みタイミング

箱庭アセット時間を進めるタイミング:hako_asset_impl_execute()

バッファキャッシュを利用して、書き込みはディレイさせる。バッファキャッシュサイズは行数で管理し、マクロ定義で可変にできるようにする。ひとまず100行をデフォルトとする。

CSVファイルクローズタイミング

シミュレーション停止タイミング:hako_asset_impl_proc()

tmori commented 2 months ago

実装

実装ファイル:src/assets/src/hako_asset_impl_measure.[ch]pp 呼び出しファイル:src/assets/src/hako_asset_impl.hpp

関数インタフェース

ファイルディスクリプトは、HakoAssetTypeで管理する。

tmori commented 2 months ago

コミットしました。

https://github.com/toppers/hakoniwa-core-cpp-client/commit/6cd274379e951a68ee712c84ca30ebacdf8278c7

tmori commented 2 months ago

Unityの箱庭アセットでも同様にシミュレーション時間のログを取りたい

hako_capi.cppの呼び出しルートに measuremnet用のAPIを追加することで対応できそう。

tmori commented 2 months ago

追加した。

https://github.com/toppers/hakoniwa-core-cpp-client/commit/22f393a20aa5249acf1b1e5648932d4ab091d63a

tmori commented 2 months ago

Unityだと、メモリクリアするとSIGSEGVで落ちてしまう。。 ひとまず、クローズせずに維持する方向にした。。よーわからん。 https://github.com/toppers/hakoniwa-core-cpp-client/commit/9bbe19e0e0bfe77cb8019bcab0cb9f28d7d8a0a7