ユーザ用ツール

サイト用ツール


2025:03:02

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
2025:03:02 [2025/03/02 19:32] – machiaworx2025:03:02 [2025/03/03 09:37] (現在) – machiaworx
行 8: 行 8:
   * https://youtu.be/P3PDALrXurs   * https://youtu.be/P3PDALrXurs
   * 内容としては「大量にメモリ確保したリストにアクセスした際の処理が遅い」というもの。グラフィックやタイマー、コマンドプロンプト周りも確認してみたけど、大きくFPSが変更することはなかった。   * 内容としては「大量にメモリ確保したリストにアクセスした際の処理が遅い」というもの。グラフィックやタイマー、コマンドプロンプト周りも確認してみたけど、大きくFPSが変更することはなかった。
-  * C++のソースコード見た感想からすると、「VMが文字列(インデックス)で管理されてる」「領域は可変だからリストのサイズを毎回走査する事をしている」みたいなんだよね。 
-  * でもそうするとC#側はなんで速度落ちねえんだよって話なわけで。 
-  * 実装もライブラリも違うから、最悪C++/CLI使ってライブラリを同じもの使うとかそういうのになるような。 
  
 ---- ----
-  * ちなみにCryPic.やRe:codeで速度が落ちないのは、単純にリスト管理をNative側で行っているから。 +  * これ解決した。 
-  * 今回の問題は「スクリプト言語上で大量にリストを管理する場合」なので、そもそも考慮の必要があるかというと微妙。(ワーストケースとして最初から提示されている内容なので) +  * 原因はyield処理で待ち状態を作ったこと。これによってプログラム側で待ち時間を確保することになったみたい。 
-  * 今後sodaを動かす時同様のケースも想定されるし、何よりMiniMicroに対しSodaを利用する理由がなくなるので(むしろC#版Sodaを作ればいいのでは?という案も)、ここは改善する必要が出てくるやつなのでは。 +  * ただそれだとyield使ったプログラムにおいて、sodaとMiniMicroで挙動が違うことになるが、それええんかという別の話になる。 
-  * とは言うもののおそらく言語のVM処理に関する部分なので、しばらくは手を付けられないんじゃないかなという。+  * 比較できそうなプログラムを少しキレイにしたものは以下。 
 +  * ただMiniMicro上だとグラフィックの取り扱いで修正が必要。 
 +  * https://machiaworx.net/wp-content/uploads/2025/03/pgm_bullet_test.zip
2025/03/02.1740911573.txt.gz · 最終更新: 2025/03/02 19:32 by machiaworx