タグ

2019年6月9日のブックマーク (4件)

  • 高速化の観点から new Array(100) を使わない方が良い理由

    別件で V8 の JIT コードの逆アセンブルを眺めている時に気づいたのですが、JavaScriptで new Array(100) という形で配列を作るのは、高速化の観点から言うと V8 においては避けるべき書き方です。 高速化を求める方は、 new Array() や [] で作成して Array#push で追加していくのが良いでしょう。この記事では、その理由を説明します。 今回の記事は、以下の V8 のブログ記事を参考にしております。 https://v8.dev/blog/elements-kinds 「詰まった配列(Packed Array)」と「穴あき配列(Holey Array)」 v8 は内部的に、その配列がどういうタイプの配列であるかの状態を記録しており、その情報を利用して最適化を適用します。状態は内部的には21個あるのですが、今回話題にするのは、その中でも「詰まってい

    kazuau
    kazuau 2019/06/09
    new Array(100)と[...new Array(100)]が違うものになってパフォーマンスも違うということなら、エンジンの最適化がまだ不十分なのではないだろうか
  • LinuxでTCP/UDPコネクション状態にプロセス情報を紐付ける方法 - ゆううきメモ

    Linuxでは、/proc/net/*やNetlinkソケットを通じて、TCP/UDPのコネクション情報を取得できる。 しかし、ここで取得したコネクション情報は、コネクションを保有するプロセスに関する情報(pidなど)を含んでいない。 ssコマンドの--extendedオプションは、inode番号を表示することから、inode番号からプロセス情報を辿ることを考える。 当該プロセスのpidがわかっていれば、/proc/<pid>/fd以下から、次のようにsocket inode番号を知ることができる。 ubuntu@yuukidev01:~$ sudo readlink /proc/21326/fd/6 socket:[16801] しかし、inode番号からそのinodeを保持しているpidを直接知ることはおそらくできない。 そこで、次のようなTCP/UDPのコネクションリストとプロセスリ

    LinuxでTCP/UDPコネクション状態にプロセス情報を紐付ける方法 - ゆううきメモ
    kazuau
    kazuau 2019/06/09
    lsofコマンドで調べるとか、そういうレベルの話ではないのかな
  • 日産自動車の技術者が開発した「アイガモロボ」がおひろめ

    堀 正岳 @ めほり @mehori アイガモロボはWiFiとGPSを利用して田んぼのなかを自動的に移動して、泥を巻き上げます。アイガモ農法と同じ要領で、雑草を生えにくくするという原理 #日産あんばさだー pic.twitter.com/CYXnLNtge8 2019-06-08 14:54:14

    日産自動車の技術者が開発した「アイガモロボ」がおひろめ
    kazuau
    kazuau 2019/06/09
    泥の攪拌だけが共通。合鴨が雑草や害虫を食べて肥料を出して、成長して食肉になるという、一石何鳥なところはロボでは再現不可能なので、「アイガモロボ」はどうか
  • 冬巻きは何はいってるの?

    春巻きは竹の子とか入ってて あー春巻いたっぽいなー うまいなー と思う じやじやじやー 冬巻きだったらばなんなのだろうか メルティーキッスか?

    冬巻きは何はいってるの?
    kazuau
    kazuau 2019/06/09
    マジレスだがwinter rollでググろう。なお普通の生春巻きはsummer rollと呼ばれている模様。