I created table of 500 rows, and reversing it on click feels slow, subjectively like 500ms or so.
Is it reasonable performance? I have a feeling that reversing table of 500 lines in JS should be faster.
Svelte demo and Pure JS demo.
Pure JS feels much faster than Svelte
Table.svelte
<script>
import Cell from "./Cell.svelte"
const template = {
name: "Barrick Gold Corp",
symbol: "ABX",
has_options: true,
ib_symbol: "GOLD NYSE USD",
ib_osymbol: "GOLD CBOE USD",
risk: 0,
quality: 0,
brand: 0
}
let rows = []
let id = 0
for (let i = 0; i < 500; i++) {
let row = [id++]
for (let key in template) row.push(("" + template[key]) + i)
rows.push(row)
}
</script>
<table>
<button on:click={() => rows = rows.reverse()}>change order</button>
{#each rows as row (row[0])}
<tr>
{#each row as cell, j (`${row[0]},${j}`)}
<Cell value={cell} />
{/each}
</tr>
{/each}
</table>
<script>
import StringView from "./StringView.svelte"
export let value
</script>
<svelte:component this={StringView} value={value}/>
<script>
export let value
</script>
<td>{value}</td>
P.S.
Svelte demo with additional Row element performance feels same as for original svelte version.
And a version with just single table element without Row and Cell elements, feels a bit faster