Разница в производительности между клиентом sid Angular & Blazor
Я выполняю один и тот же небольшой фрагмент кода в Angular & Blazor (на стороне клиента), и я не понимаю разрыва в производительности между двумя системами. Угловые выглядят намного быстрее.
Я использую последнюю актуальную версию Windows 10 (1903). Я использую Chrome версии 76.0.3809.100 (Build officiel) (64 бита).
Кодекс очень и очень прост: для Blazor
@code {
int currentCount = 0;
void process()
{
DateTime from = DateTime.Now;
Console.WriteLine (from);
long nombreOccurences = 100000000;
Console.WriteLine ("Nombre de factoriels " + nombreOccurences );
for (int currentCount = 0; currentCount < nombreOccurences; currentCount++) {
long result = factorial(currentCount%21);
}
Console.WriteLine(currentCount);
DateTime to = DateTime.Now;
Console.WriteLine (to);
TimeSpan diff = to - from;
Console.WriteLine("diff " + diff);
}
long factorial (long n) {
return n>1 ? n*factorial(n-1) : 1;
}
}
Для угловых
process() {
let currentCount = 0;
let result = 0;
console.log('Process');
const from = new Date();
console.log('from', from);
const nombreOccurences = 100000000;
console.log('Nombre de factoriels ', nombreOccurences);
for (currentCount = 0; currentCount < nombreOccurences; currentCount++) {
result = this.factoriel(currentCount % 21);
}
console.log ('currentCount', currentCount);
const to = new Date();
console.log(to);
var diff = to.getTime() - from.getTime();
console.log('diff ', diff);
}
public factoriel(n: number) {
return n > 1 ? n * this.factoriel(n - 1) : 1;
}
Консоль Angular:
from Thu Aug 08 2019 16:21:35 GMT+0200 (heure d’été d’Europe centrale)
app.component.ts:22 Nombre de factoriels 10000000
app.component.ts:28 currentCount 10000000
app.component.ts:31 Thu Aug 08 2019 16:21:36 GMT+0200 (heure d’été d’Europe centrale)
app.component.ts:34 diff 795
Консоль Blazor:
ASM: 08/08/2019 14:23:54
blazor.webassembly.js:1 WASM: Nombre de factoriels 100000000
blazor.webassembly.js:1 WASM: 0
blazor.webassembly.js:1 WASM: 08/08/2019 14:24:52
blazor.webassembly.js:1 WASM: diff 00:00:58.2570000
1 ответ
Blazor Webassembly работает медленнее, чем JavaScript. См . https://github.com/mono/mono/issues/9825.
Но теперь вы можете использовать предварительную компиляцию Blazor WebAssembly (AOT), нет большого разрыва с JavaScript, см. https://devblogs.microsoft.com/aspnet/asp-net-core-updates-in- сеть-6-превью-4/