Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angular 混淆角度和角度之间的性能差距;Blazor客户端sid_Angular_Performance_Blazor Client Side - Fatal编程技术网

Angular 混淆角度和角度之间的性能差距;Blazor客户端sid

Angular 混淆角度和角度之间的性能差距;Blazor客户端sid,angular,performance,blazor-client-side,Angular,Performance,Blazor Client Side,我在Angular和Blazor(客户端)中执行相同的一小段代码,我不理解这两个系统之间的性能差距。 角度看起来快多了 我使用的是最新版本的Windows10(1903)。 我使用的是Chrome版本76.0.3809.100(Build Officel)(64位) 代码非常简单: 为布拉佐 @code { int currentCount = 0; void process() { DateTime from = DateTime.Now;

我在Angular和Blazor(客户端)中执行相同的一小段代码,我不理解这两个系统之间的性能差距。 角度看起来快多了

我使用的是最新版本的Windows10(1903)。 我使用的是Chrome版本76.0.3809.100(Build Officel)(64位)

代码非常简单: 为布拉佐

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

有趣的测试,尝试不输出到控制台,看看它是否更接近。如果是这种情况,那么问题在于Web程序集和JavaScript之间的上下文切换。让我们知道我可以在没有输出的情况下重新运行,但我不理解你的话。花费时间的步骤是循环,这个循环中没有控制台输出,没有开关JS/WebAssembly。现在我检查了代码,你是对的,控制台日志没有放在循环中,所以不应该有什么区别。有趣的测试,尝试不输出到控制台,看看它是否更接近。如果是这种情况,那么问题在于Web程序集和JavaScript之间的上下文切换。让我们知道我可以在没有输出的情况下重新运行,但我不理解你的话。花费时间的步骤是循环,循环中没有控制台输出,没有开关JS/WebAssembly。现在我检查了代码,你是对的,控制台日志没有放在循环中,所以不应该有什么区别。
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
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