V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX  ›  userforg2021  ›  全部回复第 1 页 / 共 2 页
回复总数  27
1  2  
2022-09-21 08:48:41 +08:00
回复了 PendingOni 创建的主题 职场话题 [感想]-貌似国内现在用.Net 技术的大厂很少
@documentzhangx66
1. 我并没有想与你"讨论"。

2. 你的结论我仍然不知道是怎么的出来的,数据库切换本来想说下 EF 的,算了,这种垃圾东西你估计看都不会看一眼的。。。

3. 你 @ 了我,然后说 “不像你们,只懂个 .Net ”,“你们”里面不包括我是吧?

4. 你用过 Linux 、Win 、C#、Java ,所以你说的就客观?我开发的东西目标运行环境就是 Linux ,在生产中要写的不止 C#、Java 还有 C++、Python 、JS 等,是不是我说的就比你客观了?

5. 字打到这里我就后悔了,我悟了,你是对的,你都说你是客观的了,那你一定是客观的,我为我上面的不客观道歉。
2022-09-20 21:13:59 +08:00
回复了 PendingOni 创建的主题 职场话题 [感想]-貌似国内现在用.Net 技术的大厂很少
@documentzhangx66
我提您了吗?您为什么要对号入座呢?
您怎么得出的结论“.Net 的主要环境就是 Windows + MSSQLServer”呢?您所谓的主要环境是运行环境还是开发环境呢?
您怎么知道我不用 Linux ?不会 Java 呢?
您从哪里客观的得出了这些结论呢?
2022-09-20 18:15:53 +08:00
回复了 PendingOni 创建的主题 职场话题 [感想]-貌似国内现在用.Net 技术的大厂很少
@Chad0000
我觉得你说的对,这不又来了。。。。
2022-09-20 15:34:11 +08:00
回复了 PendingOni 创建的主题 职场话题 [感想]-貌似国内现在用.Net 技术的大厂很少
因为很多人对.net 的认知还停留在至少 2016 年以前,他们连搜都没搜来看一眼就开始喷,但凡看了一眼官网教程目录都不至于说出某些话。你跟他提.net ,他反手就要给你扯 Windows 、mssql 那些有的没的,我不太懂这是什么逻辑。当然了,还是因为微软是原罪,一些群体都能人均给 Linux 、Mysql 做修改了,当然看不上啦
2022-09-07 17:17:20 +08:00
回复了 bthulu 创建的主题 .NET .net core 的时间日期类为啥这么慢, 跟 Java 至少几十倍的差距
既然你都看到源码了,那就看下 Java 为什么快吧。

从 jdk11 中可以看到 Windows 获取时间使用的函数是 GetSystemTimeAsFileTime ;
https://github.com/openjdk/jdk/blob/jdk-11+28/src/hotspot/os/windows/os_windows.cpp#L917

再看.net6 ,可以看到.net 在系统支持时会使用更精确的时间函数 GetSystemTimePreciseAsFileTime ;
https://github.com/dotnet/runtime/blob/v6.0.8/src/libraries/System.Private.CoreLib/src/System/DateTime.Windows.cs#L134

GetSystemTimePreciseAsFileTime 函数在 win8 以上受支持:
https://docs.microsoft.com/en-us/windows/win32/api/sysinfoapi/nf-sysinfoapi-getsystemtimepreciseasfiletime#requirements

这是一个慢的点。但是.net 的 DateTime 精度更高。另外.net 还会计算闰秒:
https://github.com/dotnet/runtime/blob/v6.0.8/src/libraries/System.Private.CoreLib/src/System/DateTime.Windows.cs#L23

这是第二个慢的点。也是为了精度考虑的。当然你可以说是.net 的“过度设计”,你不需要精确时间。。。那这个确实就需要自己动手了:

public unsafe static class SlimDateTime
{
private const long TicksPerMillisecond = 10000;
private const long TicksPerSecond = TicksPerMillisecond * 1000;
private const long TicksPerMinute = TicksPerSecond * 60;
private const long TicksPerHour = TicksPerMinute * 60;
private const long TicksPerDay = TicksPerHour * 24;

private const int DaysTo1601 = 584388;
private const int DaysTo1970 = 719162;

private const long FileTimeOffset = DaysTo1601 * TicksPerDay;

private const ulong KindUtc = 0x4000000000000000;

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static DateTime UtcNow()
{
var ticks = GetTicks();
return *(DateTime*)&ticks;
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ulong GetTicks() => OperatingSystem.IsWindows() ? Windows.GetTicks() : (ulong)DateTime.UtcNow.Ticks;

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ulong UtcNowUnixTimeMilliseconds() => OperatingSystem.IsWindows() ? Windows.UtcNowUnixTimeMilliseconds() : (ulong)DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();

private static class Windows
{
[DllImport("kernel32", EntryPoint = "GetSystemTimeAsFileTime")]
[SuppressGCTransition]
public extern static void GetSystemTimeAsFileTime(ulong* time);

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ulong GetTicks()
{
ulong fileTime;
GetSystemTimeAsFileTime(&fileTime);
return fileTime + (FileTimeOffset | KindUtc);
}

[MethodImpl(MethodImplOptions.AggressiveInlining)]
public static ulong UtcNowUnixTimeMilliseconds()
{
ulong fileTime;
GetSystemTimeAsFileTime(&fileTime);
return (fileTime - ((DaysTo1970 - DaysTo1601) * TicksPerDay)) / TicksPerMillisecond;
}
}
}

其他的就不评价了,懒得打字;
2022-09-04 09:11:52 +08:00
回复了 bthulu 创建的主题 .NET .net core 的时间日期类为啥这么慢, 跟 Java 至少几十倍的差距
@Maboroshii dotnet run -c Release
2022-09-03 12:40:34 +08:00
回复了 bthulu 创建的主题 .NET .net core 的时间日期类为啥这么慢, 跟 Java 至少几十倍的差距
大佬不先点评一下 Serilog 、NLog 、Microsoft.Extensions.Logging 、log4net 这些怎么不好用?
2022-08-31 08:47:49 +08:00
回复了 pepi 创建的主题 程序员 PowerShell 这种强大的命令行工具,为什么使用的人很少?
@hez2010 虾仁猪心!虾仁猪心!
@bthulu CLR via C#
@bthulu 有区别,你现在的写法,RT0 会等 action 第一次执行完才会返回; Task.Run 不会等待;你也可以在 RT0 开始位置使用 await Task.Yield()来达到立即返回的效果;

Task 运行过程中不会被回收,它会被工作线程引用。
2022-05-11 15:14:21 +08:00
回复了 Bingchunmoli 创建的主题 程序员 关于 Java 很重有感
@zakokun 哈哈哈,血压上来了。之前看一个开源项目。八九层源码文件夹点开,里面两个文件。再看测试,也是八九层文件夹,点开就一个文件,还是占位的。当场就跪了。
2022-04-26 13:48:23 +08:00
回复了 yodhcn 创建的主题 程序员 如何断点调试被 .exe 程序调用的 C# 类库?
试试插件入口点加一句
System.Diagnostics.Debugger.Launch();
然后不使用 VS 调试,直接启动软件,正常情况下会弹出选择框让你选 VS 实例,选择打开了源码的 VS 就行了。
1. 其它语言是哪些语言;
2. 100*0.8=80 ;
3. 了解一下 GC 工作机制,以及.net 的 Workstation GC 和 Server GC ;
4. 开 IDE 调试看看有没有触发 GC ,手动触发 GC 试试;
2022-04-11 21:55:24 +08:00
回复了 yuhangch 创建的主题 .NET EF Core LINQ 使用反射获取属性值大幅降低查询速度
你这个需求。。。不就是 Select 的功能吗。。。。
差距么,差距是 C#是微软出的,对有的人来说就是原罪
@jeffw 他算上了 runtime ,不过几百兆夸张了,完整的 runtime 不到 100M
@BrettD 为什么不是主流呢?因为 xx 是原罪
1  2  
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3454 人在线   最高记录 6679   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 23ms · UTC 10:55 · PVG 18:55 · LAX 02:55 · JFK 05:55
Developed with CodeLauncher
♥ Do have faith in what you're doing.