四方山 天国
34.3K posts


JavaScript も 結局 C言語
いまBABYLON.jsで開発中のゲームは、100体以上のキャラクターを60fpsで長時間動かすので、GC を極限まで減らさねばならない。毎フレーム動かす処理では、暗黙的なオブジェクト生成も見つけて潰す必要がある。
また、グローバル定数を壊して、影響が出るはずの無い他のキャラクターの速度や色が変わるというバグを、何度か起こしてしまった。これも防がねばならない。
いろいろ考えて導き出した答えが、コレ:
「プリミティブ以外、イコールは使用禁止」
もう、これで行こう。例外は「明示的に対象オブジェクトへの参照を保持したいケース」「関数の引数として構造体を渡すケース」。これ以外は「イコールを見つけたら、あやしい」と思うことにする。
クラスの construct時に、プロパティであれテンポラリ変数であれ、メモリを使うものは全てプリアロケーションし、毎フレームの処理では一切、動的なメモリ確保は行わない。
……あぁ、これは、マシン語やC言語でゲームを作る時には当然だった感覚だったな。思い出した。
「プリミティブ以外、イコールは使用禁止」
(効果1)参照共有の事故を完全に防ぐ
Vector3 / Color3 / Quaternion / Matrix / Array など、JavaScript の参照型は、「イコールで渡した瞬間に共有」になり、定数破壊事故の根源となる。規約で禁止すれば、事故はゼロ。
(効果2)暗黙的な new を完全に排除
ベクトルの add(), subtract(), scale() など多くのメソッドはイコールでの代入時に内部で new を行う。これを ~InPlace()系関数、~ToRef()系関数、.set()関数、.copyFrom()関数 など「既にメモリ確保されているものを更新する関数」に置き換える。結果、見た目からもイコールが消える。これで GC を完全に抑制できる。
(効果3)プリアロケーションが徹底される
「イコール禁止」を実現するには、その前提として「constructorで全ワーク変数を確保」「update()内で一切newしない」が徹底されることになる。見た目で判断できるので、コードレビューが圧倒的に楽になる。
それでも残るイコールは、プリミティブか、ライフサイクルが厳密に管理されている他キャラクターのインスタンスへの参照を保持する場合だけになるはず。実際、この方針でプログラムを書き換えて、100体以上のキャラクターで20万程度のArrayが発生した状態で2時間以上回したがHeapは全く増えずフルGCも一度も掛からなかった。よしよし。
日本語

@lovepopp_ibkino 師が
元世界を救った勇者
世界一の魔導士
パーティメンバーが
現役勇者(世界最強生物)
王国の姫や側近などの賢者
魔王軍トップクラス
など
なので、比較対象がヤバすぎるがゆえに
日本語

@Roma1_Sunlight 残さない、は日本の文化よなぁ…
飽食の国だと残す方が美徳だったりして、
もてなし側としては残すまで出さないと気が済まないみたいなのがある。
日本語

「食べ物を残すな」って言ってんじゃないの
「食べ物を残した事を偉そうに開き直るな」って言ってんの

IFDOCO@IFD_OCO
これ結構芯を食ってると思うんだが、「残せる人はメンタルが強い」というより、「食べ物を残せない人はつまらんことに一生懸命になり過ぎ」の方が近い気がするな つまらんことへの優先順位がバグっているのが原因だと思う
日本語

めちゃくちゃ良いから読むんだ
「少年ジャンプ+」で「ひたひたキャット/25年12月期JUMP新世界漫画賞 #ジャンププラス #新世界漫画賞 #J新世界漫画賞 shonenjumpplus.com/app/viewer/ec1…
日本語

今回の衆院選期間中/選挙後、チームみらいに関して多くのアカウントから、様々な発信がありました。
もちろん真っ当な批判も多くございますが、中には根拠不明なものや明らかな偽情報もあります。
チームみらいとしては、起こっていることをまずはしっかり把握・分析したいと考えています。それにあたり早速、エンジニアチームが分析用のツールを作りはじめています。
時系列で、いつどれくらいどのような投稿があったか、アカウント間の繋がりなどを見える化しながら、対応を見定めたいと考えております。
チームみらいとしては、受け入れるべき批判や内容については受け止め、明らかな誤情報に対してはしっかりとした対応を検討していける体制を作りたいと思います。


日本語
四方山 天国 retweeté


【衝撃】スウェーデン、帰国を希望する移民に「500万円」支給へ。
かつての「人道大国」が、ついにここまで踏み込んだ。 スウェーデン政府が、自発的な帰国を希望する移民に対し、1人あたり最大35万クローナ(約560万円)を支給する制度を2026年から本格始動させました。
これまでは1人あたり約14万円だったので、なんと「40倍」もの大幅増額。 なぜスウェーデンは、これほどの大金を払ってまで「帰ってほしい」と願うようになったのか?その背景が非常に深刻です。
1. 「統合の失敗」という現実
スウェーデンは長年、寛容な移民政策をとってきましたが、言葉や文化の壁により社会に溶け込めないケースが多発。結果として、特定のコミュニティが隔離され、失業率の差や貧困が固定化してしまいました。
2. 激化するギャング犯罪
現在、スウェーデンを悩ませているのが、移民背景を持つ若者たちによる銃撃や爆発事件の急増です。「欧州で最も安全な国の一つ」だった面影はなく、治安の悪化が政権交代の決定打となりました。
3. 「500万円」は安い買い物?
「1人に500万円も配るなんて!」という批判もありますが、政府の計算は極めて現実的。 その人が一生スウェーデンで生活保護や公的支援を受け続けるコスト、治安維持にかかるコストを考えれば、500万円払って母国で再出発してもらう方が、長期的には国家予算の節約になるという「究極の選択」です。
4. 厳格な支給ルール
もちろん「もらい逃げ」は許しません。
出国時・帰国後・帰国15ヶ月後の3段階に分けた分割払い
スウェーデンの居住権は完全放棄
この政策は、デンマークなどの周辺国でも議論を呼んでいます。かつての理想主義を捨て、現実路線に舵を切った北欧の今。
これは日本にとっても、決して「遠い国の話」ではありません。
日本語
四方山 天国 retweeté














