Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/302.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# 性能与干净代码?_C#_Performance - Fatal编程技术网

C# 性能与干净代码?

C# 性能与干净代码?,c#,performance,C#,Performance,MSDN的性能调整建议如下: 打粗话 chunky调用是执行多个任务的函数调用,例如初始化对象的多个字段的方法。这是针对聊天调用进行查看的,聊天调用执行非常简单的任务,需要多次调用才能完成任务(例如使用不同的调用设置对象的每个字段)。重要的是在方法之间进行粗块的调用,而不是闲聊的调用,因为这些方法的开销高于简单的AppDomain内方法调用。P/Invoke、interop和remoting调用都会带来开销,您希望节省使用它们。在上述每种情况下,您都应该尝试设计您的应用程序,使其不依赖于占用大量

MSDN的性能调整建议如下:

打粗话 chunky调用是执行多个任务的函数调用,例如初始化对象的多个字段的方法。这是针对聊天调用进行查看的,聊天调用执行非常简单的任务,需要多次调用才能完成任务(例如使用不同的调用设置对象的每个字段)。重要的是在方法之间进行粗块的调用,而不是闲聊的调用,因为这些方法的开销高于简单的AppDomain内方法调用。P/Invoke、interop和remoting调用都会带来开销,您希望节省使用它们。在上述每种情况下,您都应该尝试设计您的应用程序,使其不依赖于占用大量开销的频繁小调用


但这如何符合实体设计原则呢?我正试图在一个brownfield Windows窗体应用程序上调整性能,我已经对其进行了重构,使其更加可靠。我这样做真的会降低性能吗?

我认为重要的部分是:

其中开销高于简单的AppDomain内方法 召唤


因此,如果您正在调用一个web服务,请进行一次调用,一次性返回所有数据,而不是多次调用。如果要调用数据库,可以让存储过程返回多个记录集,而不是进行大量调用。web服务或SP中的代码可以是可靠的,等等。

我认为重要的部分是:

其中开销高于简单的AppDomain内方法 召唤


因此,如果您正在调用一个web服务,请进行一次调用,一次性返回所有数据,而不是多次调用。如果要调用数据库,可以让存储过程返回多个记录集,而不是进行大量调用。然后,web服务或SP中的代码可以是可靠的,等等。

我认为这在某种程度上是可以接受的。你能提供一个你引用这个的链接吗?这个参考文献有多古老?有多糟糕?你分析过它吗?你确定矮胖/健谈有什么关系吗?无论如何,如果没有具体的例子,这个问题太广泛了。我同意@Sinatr。你能提供一个例子吗?这是一个非常简单的建议,在某些情况下,方法调用的成本可能会很高。当这种情况发生时,“干净”成为“快”的对极。这种情况并不经常发生,你总是知道什么时候会发生这样的情况。如果你不这样做,那么剖析器就会指出问题的症结所在。@user1666620这个问题对于程序员来说是非常不合适的——它会很快被否决并在那里结束,请参阅推荐阅读:我想说这是一个有点开放的意见。你能提供一个你引用这个的链接吗?这个参考文献有多古老?有多糟糕?你分析过它吗?你确定矮胖/健谈有什么关系吗?无论如何,如果没有具体的例子,这个问题太广泛了。我同意@Sinatr。你能提供一个例子吗?这是一个非常简单的建议,在某些情况下,方法调用的成本可能会很高。当这种情况发生时,“干净”成为“快”的对极。这种情况并不经常发生,你总是知道什么时候会发生这样的情况。如果你不这样做,剖析器就会指出问题的症结所在。@user1666620这个问题对于程序员来说是非常不合适的-它会很快被否决并结束,请参阅推荐阅读: