Svelte 'Evaluate Script' Zeit erscheint höher als Inferno, Preact


8

Ich versuche, eine Bibliothek für mein Projekt auszuwählen, die Datenbindungs- und DOM-Verwaltungsfunktionen bietet . Beim Vergleich mehrerer Bibliotheken kam ich zu Inferno und Svelte .

Ich habe festgestellt, dass die Auswertungszeit für Svelte höher ist als für die anderen Bibliotheken (siehe beigefügtes Bild) Geben Sie hier die Bildbeschreibung ein .

Im Beispiel habe ich eine 100 x 15-Tabelle (insgesamt 1500 Zellen) gerendert. Die Renderzeit reduziert sich zwar um einige Millisekunden, aber die Skriptausführungszeit von Inferno ist die Hälfte davon.Geben Sie hier die Bildbeschreibung ein

Die Zeit nimmt drastisch mit der Anzahl der Elemente zu, z. Für 15000 Zellen beträgt die Auswertungszeit für schlanke Skripte 2000 ms, während das Inferno 680 ms dauerte.

Svelte Code:

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

Inferno-Beispielcode:

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>
    );
  }
}

Warum ist diese Skriptauswertungszeit für Svelte hoch?


1
Ich habe dies auch beim Auffüllen kleiner Big Data in Tabellen bemerkt.
Yousuf Iqbal Hashim

Antworten:


3

Die kurze Antwort lautet, dass wir große Listen noch nicht besonders gut optimiert haben, während Inferno (bei dem es um Mikrooptimierungen geht und das umfassende Wissen der Autoren über die Funktionsweise von JS-Engines genutzt wird) dies getan hat. Die Verbesserung steht auf der TODO-Liste!

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.