non vorrei lavorare

ブログ名の通りです。javascript three.js mruby rust OCaml golang julialang blender

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")

参考記事

関連記事

4年前の記事

第3回:3月26日(日)Blender勉強会(UE4よちよち勉強会_スピンオフ)@HDE(渋谷)に行ってきた

こんばんは。我が家の子供たちは相変わらずトランスフォーマー熱が高いので、お台場のMEGA WEBの「トランスフォーマー × MEGA WEBスペシャルイベント 」に家族で行ってきました。kjunichiです。

Bledner系の初めての勉強会

とりあえずMacBook Pro持参するので、マウスも会場近くのビックカメラで購入して会場に向かいました。

もくもくの内容

BlenderにTensorflowを組み込もうとしたが、連続して使えるような気の利いた初期化処理を組むのが難しかったので、 すでに作成済みのTensorflowのclassify_image.pyをwebサービス化したサービスを利用するものを作った。

Blender側はBlenderレンダリングした画像を指定したURLへPOSTするという実装で対応。

成果物

当日解説頂いた藤原佑介先生にも感想頂けました!

ありがとうございます。

関連記事

5年前の記事