Svelteの「スクリプトを評価する」時間は、インフェルノと比較して高く表示されています。


8

データバインディングとDOM管理機能を提供するプロジェクト用のライブラリを選択しようとしています。複数のライブラリを比較すると、結局InfernoとSvelteになりました

Svelteのスクリプト時間の評価が他のライブラリよりも高いことに気付きました(添付の画像を参照してください) ここに画像の説明を入力してください

サンプルでは、​​100 x 15のテーブル(合計1500セル)をレンダリングしました。レンダリング時間は数ミリ秒減少しますが、インフェルノのスクリプト実行時間はその半分です。ここに画像の説明を入力してください

要素の数に応じて時間が大幅に増加します。15000セルsvelteスクリプトの評価時間は2000ミリ秒ですが、インフェルノは680ミリ秒かかりました。

Svelteコード:

<style>
table,td,tr {
  border: 1px solid black;
}
</style>
<script>
import { officedatabase } from '../../../data_generator/sampleGridData/initialloaddata.js';
</script>
<table>
  {#each officedatabase as row}
    <tr>
     {#each row as cell}
      <td>{cell}</td>
     {/each}
    </tr>
  {/each}
</table>

インフェルノサンプルコード:

import { Component } from 'inferno';
import { officedatabase } from './initialloaddata.js';
export default class Grid extends Component {
  state = {
    data: officedatabase
  };
  render () {
    let data = this.state.data,
      rows = data.map((row)=> {
        return (
        <tr class='row'>
          {row.map((ele)=>{
            return <td style='border: 1px solid black;'>{ele}</td>;
          })}
          </tr>
        );
      });
    return (
      <div>
        <table style='border: 1px solid black;'>
          {rows}
        </table>
      </div>
    );
  }
}

なぜこのスクリプトの評価時間がSvelteで高いのですか?


1
テーブルに小さなビッグデータを入力しているときにも、これに気づきました。
Yousuf Iqbal Hashim

回答:


3

短い答えは、大規模なリストを最適化するという特に良い仕事をまだ行っていないということですが、Inferno(これはすべてマイクロ最適化についてであり、JSエンジンの動作に関する著者の深い知識を利用しています)です。それを改善することはTODOリストにあります!

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.