Poor rendering performance since electron1.4(Windows)
こんばんは。暖かくなってきたので、来春から小学生となる長男の生活リズムをつくるべく、子供たちをこれまでよりは早く起こすようにしています。@kjunichiです。
背景
Electronをつかって3Dマスコットのgopheronを作っているのだが、最近Electronのバージョンをあげたら、 なんか動きが途中で重くなる現象に遭遇。
1.3.x is OK
npm electron@1.3
1.4.x is not OK
npm electron@1.4
こっちだとたまにすごく重くなる感じ。 Dev toolでみるとフレームレートが極端に落ちていると警告されるレベル。
1.4以降はどうようにときどき重くなる現象が発生して、最新版でも改善されていない。
類似事象の調査
考察
zcbenzさんの
Can you try setting a non-transparent backgroundColor for BrowserWindow and see if there is any difference?
1.4系以降のChromeでの透明ウィンドウの扱いがうまくGPUを活用できてないのかも。
関連記事
3年前の記事
Goの学習メモ~ファイルの存在チェックとWindowsでのファイルパスの扱い~
こんばんは、自宅のガスコンロが新しくなってから、魚焼き器の火力が強すぎ、食パンを焼くのに難儀していたので、 ようやく次男が湘南新宿ラインを燃やして、ダメにしたトースターを買うことにしました。(全額ポイントでw)。@kjunichiです。
背景
細々と続けているElectronベースのThree.jsを使った3Dマスコットのgopheronの開発で最近学んだ Go関連の学習記録
Electronの1.4系から、とつぜん動作が遅くなるなぞの現象に遭遇して、悩み中。仕方ないので、 1.3系をローカルに入れ、これを使うことに。
その辺りの実装で必要となったGoの学習記録。
ファイル関連
ファイルの存在チェック
electronがローカルでインストールされてるかを調べた。
func Exists(filename string) bool { _, err := os.Stat(filename) return err == nil } // ・・・ if Exists(localElectron) { return filepath.FromSlash(localElectron) }
Windows向けのパスにしてシェルに渡す
存在チェックのようにgoのライブラリには「/」のファイルセパレータで結構いけるようだが、 shellを呼ぶような際には以下のような変換が必要だった。
filepath.FromSlash("./test/sub/command.exe")
参考記事
関連記事
- Goオールスターズ2に行くので、gopheronをGo言語で動かせるようにした #websocket
- ElectronでWebGL(three.js)使ってデスクトップマスコット作った際に分かったこと
- Go言語でコマンドプロンプトに画像を表示するコマンドを作って、Vimの:terminalで表示させた
- goroutineを使って高速にLAN内の*.localなホスト名の一覧を取得するツールを作った
5年前の記事
4年前の記事
第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷)に行ってきた
こんばんは。我が家の子供たちは相変わらずトランスフォーマー熱が高いので、お台場のMEGA WEBの「トランスフォーマー × MEGA WEBスペシャルイベント 」に家族で行ってきました。@kjunichiです。
Bledner系の初めての勉強会
とりあえずMacBook Pro持参するので、マウスも会場近くのビックカメラで購入して会場に向かいました。
よくよく、自宅に戻って、こじ開けたブリスターパッケージ見たら、開ける場所ちゃんと用意されてたorz
— kjunichi (@kjunichi) 2017年3月26日
もくもくの内容
Blenderで何もかん変えずにTensorflow組み込んでclassify_image.py的なものを動かすと、一回しか動かない。プランBだな #b3d
— kjunichi (@kjunichi) 2017年3月26日
import request しててハマった python難しいw import requestsで解決w
— kjunichi (@kjunichi) 2017年3月26日
BlenderにTensorflowを組み込もうとしたが、連続して使えるような気の利いた初期化処理を組むのが難しかったので、 すでに作成済みのTensorflowのclassify_image.pyをwebサービス化したサービスを利用するものを作った。
Blender側はBlenderでレンダリングした画像を指定したURLへPOSTするという実装で対応。
成果物
第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷) 行ってきた。発表もしたので、その資料がこれです。HDEさんドクターペッパーありがとうございました! #b3d / “今日やった…” https://t.co/Ci3bbuVtxe
— kjunichi (@kjunichi) 2017年3月27日
当日解説頂いた藤原佑介先生にも感想頂けました!
今日だけでBlenderとwebでTethorflowセットアップしてる方とかいて、さすがエンジニアだなぁって感心しました
— 藤原佑介 (@GhostBrain3dex) 2017年3月26日
ありがとうございます。