タグ

ブックマーク / nmi.jp (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個あるのですが、今回話題にするのは、その中でも「詰まってい

    otherworld
    otherworld 2019/06/10
    個人的にはここ20年ぐらいでnew Array(100)を必要とする機会がなかったかも。
  • Tombo, Inc. をスマートニュース株式会社に売却しました

    昨日ニュースリリースにて発表されましたが、この度 Tombo, Inc. をスマートニュース株式会社に売却しました。 Tombo, Inc. は2014年7月1日にサンフランシスコに設立し、その後4年以上にわたり日アメリカ両方にて活動を重ねてまいりました。関係各所の皆様方にご迷惑ばかりおかけしたことを深く恥じ入るばかりです。当に申し訳ありません。未熟な我々をご支援いただきましたこと、深くお礼を申し上げます。 また売却に対しておめでとうの言葉を頂いた皆様、ありがとうございます。とても嬉しかったです。 Tombo, Inc. 活動の経緯 元々 Tombo, Inc. の目的としては、App Store や Google Play のようなアプリプラットフォームの Web 版を立ち上げることでした。4年前、どれだけ素晴らしい Web アプリを制作したとしても、それを配布する手段が口コミ以外

  • 巨大 WebAssembly ファイルのコンパイル時間

    funcs というのは、wasm 内に何個関数が入っているか、です。1 func の場合は Function body が約 25Mb、100,000 funcs の場合は約 2.5kb、500,000 funcs の場合は約 0.5kb です。 Chrome では 20秒〜1分 ほどかかっています。なおこのコンパイル処理は現在の Chrome の実装だとページをロードする度に必ず発生するので、巨大 WebAssembly が存在するページを Chrome で開いた場合、キャッシュの有無等と関係なく相当待つ必要があります。 Firefox だと、Function Body のサイズによって処理時間が大きく変わります。1 つしか関数がないときはクラッシュしましたが、Function Body が小さくなるにつれて速度が向上しています。例えば Emscripten 等で出力される巨大な Web

  • 事業計画書の作り方、新規ビジネスの考え方

    最近、起業を目指している方などから相談を受ける時に、「事業計画書ありますか?」と雑に聞き返すことが多くなってきました。一般的には「事業計画書に何を書けばいいのか?」をわからない人の方が多いでしょう。今回の記事で、事業計画書で重要な事項について解説します。 事業計画書は一般的に起業家が投資家に見せるために用意するものですが、誰に見せてもすぐにビジネスを理解してもらえることを目的に書くのが良いと思います。株の持ち分や個人情報などの機密情報もあるので公開されることはないですが、業界外の人がみても理解出来るように、かつ途中で飽きないように簡潔に書かれていると素晴らしいでしょう。 事業計画書で重要なことは、そのまま起業において大切なことに繋がります。わかりやすいように、なるべく具体的な例を出しながら解説したいと思います。 事業計画書に書かれているべきリスト まずは早速、事業計画書に書かれているべき項

  • 1