Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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
C# 使用/unsafe进行编译可能存在的缺点_C#_Visual Studio_.net Assembly_Unsafe - Fatal编程技术网

C# 使用/unsafe进行编译可能存在的缺点

C# 使用/unsafe进行编译可能存在的缺点,c#,visual-studio,.net-assembly,unsafe,C#,Visual Studio,.net Assembly,Unsafe,为了使用指针,我必须使用/unsafe编译程序集。我想知道使用/unsafe编译时的差异。请假设没有编程错误,例如指针的无效使用等。如果使用不安全的编译程序集,是否会损失一些性能?内存有问题吗 不安全代码可以通过删除数组边界检查来提高应用程序的性能 使用不安全代码会带来安全和稳定性风险 链接:好吧,使用“不安全”代码基本上可以提高性能,直接访问内存和指针。通常情况下,在.NET代码中使用这种方法是为了提高性能,例如3D渲染内核引擎。在100%.NET代码中编写这样的东西会使应用程序速度太慢,所以

为了使用指针,我必须使用/unsafe编译程序集。我想知道使用/unsafe编译时的差异。请假设没有编程错误,例如指针的无效使用等。如果使用不安全的编译程序集,是否会损失一些性能?内存有问题吗

不安全代码可以通过删除数组边界检查来提高应用程序的性能

使用不安全代码会带来安全和稳定性风险

链接:

好吧,使用“不安全”代码基本上可以提高性能,直接访问内存和指针。通常情况下,在.NET代码中使用这种方法是为了提高性能,例如
3D
渲染内核引擎。在
100%
.NET
代码中编写这样的东西会使应用程序速度太慢,所以指针会起到帮助作用,特别是当我们需要处理
C/C++
库之间的“桥梁”时,比如
OpenGL
(比如说)


长话短说:如果你写了一个好的非托管代码,你肯定会从中受益。

我不认为这意味着你的普通asp.net网站或web表单应用程序会受益。只有在完成正确的代码分析之后,才能做出这样的决定。@asawyer:一般来说,转移到不安全代码并不是为了提高性能。当您有几个成本时,您就可以这样做:例如,访问som C/C++库。在不安全的代码内和代码外处理这些东西会产生不同。我没有到处宣传使用不安全的代码,但考虑到你选择了它,你有很好的理由这么做。当然,我只是有点担心有人可能会错误地阅读你的答案(这是完全正确的),因为你说,为了模糊的“性能提升”,继续在任何应用程序中使用它原因。@asawyer:如果你真的很关心性能,并且在非托管代码中感觉很好,那么就用C/C++编写代码。好的C/C++代码是未编写的。