@
userforg2021 NLOG 好不好用, 你看看 NLOG 新发的 5.0 版本(
https://nlog-project.org/2021/08/25/nlog-5-0-preview1-ready.html)的优化改进不就知道了, 修改了那么多的特性, 改了多少默认设置, 足以证明之前版本的 NLOG 并不好用.
@
PendingOni @
iold 这些都是要先 New 一个日期实例, DateTimeOffset.UtcNow 也是 New 了一个实例, 这个实例里做了大量的日期设定类操作, 而我仅仅只需要当前时间戳就行了. 上面有位兄弟也给出了代码对比了, 至少 4 倍差距.
我自己本地联想小新电脑上测试性能差距更大一些, DateTime.Now 和 new Date()各跑一亿次, .net 耗时 3818 毫秒, java 耗时 364 毫秒, 相差 10 倍.
------------------------------------------------------
--------------.net6.0.8 测试
------------------------------------------------------
using System.Diagnostics;
// 热身
for (var i = 0; i < 100_000_000; i++)
{
var now = DateTime.Now;
}
// 开跑
var watch = Stopwatch.StartNew();
for (var i = 0; i < 100_000_000; i++)
{
var now = DateTime.Now;
}
Console.WriteLine(watch.ElapsedMilliseconds);
耗时 3818 毫秒
-----------------------------------------------------
--------------ms jdk11.0.16.1 (ms1.8 的 jdk 官网找不到了)
-----------------------------------------------------
import
java.util.Date;
public class Main {
public static void main(String[] args) {
// warm up
for (var i = 0; i < 100_000_000; i++)
{
var now = new Date();
}
// start test
long start = System.currentTimeMillis();
for (var i = 0; i < 100_000_000; i++)
{
var now = new Date();
}
long end = System.currentTimeMillis();
System.out.println(end - start);
}
}
耗时 364 毫秒
-----------------end-----------------------------------