Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >将方法的参数作为引用类型会带来性能提升吗?

将方法的参数作为引用类型会带来性能提升吗?
EN

Stack Overflow用户
提问于 2010-11-08 06:11:45
回答 4查看 131关注 0票数 0

我有一个公共方法,它反复调用其他几个私有方法。这些私有方法接受一个或多个参数(大多数是字符串),并具有返回类型。所有这些参数都是值类型参数。

我想知道是否可以通过将所有这些值类型参数转换为引用类型来提高ASP.NET应用程序的性能,因为引用类型的内存消耗将比值类型少得多。

提前谢谢。

EN

回答 4

Stack Overflow用户

发布于 2010-11-08 06:13:56

除非你的值类型很大,否则这可能是一个不必要的微优化。如果是这样的话,您可能需要重新考虑您的设计。

一如既往,首先进行基准测试,看看真正的瓶颈在哪里。

票数 7
EN

Stack Overflow用户

发布于 2010-11-08 06:22:48

代码:

代码语言:javascript
运行
AI代码解释
复制
while (true)
{
  Stopwatch watch = new Stopwatch();
  watch.Start();
  Int64 myNum = 123456789;
  for (int i = 0; i < 10000000; i++)
  {
    myNum++;
    DoSomething(myNum);
  }
  watch.Stop();
  Console.WriteLine("Time: " + watch.ElapsedMilliseconds + "ms");
}

private void DoSomething(Int64 bigNum)
{
  Int64 fake = bigNum - 1;
}

不带ref:

代码语言:javascript
运行
AI代码解释
复制
Time: 237ms
Time: 245ms
Time: 252ms
Time: 237ms
Time: 235ms

带ref:

代码语言:javascript
运行
AI代码解释
复制
Time: 242ms
Time: 238ms
Time: 232ms
Time: 248ms
Time: 232ms
Time: 233ms
Time: 232ms

非常基本的测试,但在最基本的情况下似乎没有什么不同。

票数 4
EN

Stack Overflow用户

发布于 2010-11-08 06:24:30

不,在正常情况下,它只会增加通过引用传递参数的开销。

如果由于值类型太大而出现性能问题,那么问题的根源在于值类型的设计,而这正是您应该解决问题的地方。

根据Microsoft的建议,值类型不应大于16个字节。如果他们更大,他们将不会有很好的表现。可以使用一条或两条CPU指令复制较小的值类型,而使用循环复制较大的值类型。

如果改用类,则默认情况下它们将作为引用传递。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4121652

复制
相关文章
在DataGrid中显示图片
    DadaGrid 是 ASP.NET 编程中一个很重要的控件,其优良的可定制功能为提高它的表现力提供了极大的方便。除了与数据源直接绑定以外,我们还可以通过列绑定模板对 DataGrid 的列进行自定义,来按照我们设定的格式显示数据。
Java架构师必看
2021/03/22
3.9K0
在eclipse中没有server(需在选项中设置)
①在软件eclipse下的Help->InstallNew Software->中,在Work with中点击Add,如下,加入
全栈程序员站长
2022/07/25
4.4K0
在eclipse中没有server(需在选项中设置)
怎样在 Unity 中创建 UI
在现在每一个软件应用中,用户界面(UI)都是核心的特征。游戏也没有抛弃这一规则。有非常多的游戏都使用 UI 来显示一些信息,比如生命值,技能,地图,武器的弹药,等等。 Unity 3D 提供了许多 UI 组件,你都可以在你的游戏中使用它们。在这篇文章中,我会指导你在 unity 的菜单中如何创建一个简单的暂停菜单。这个暂停菜单将显示一个内容为『Paused』的 text 组件和三个按钮组件:分别是复位按钮『Resume』,重新开始按钮『Restart』,退出按钮『Quit』,并且还是显示游戏从场景加载到现在的时间。在这篇文章的最后,你应该创建出了类似下面的界面:
hrscy
2018/08/30
6K0
怎样在 Unity 中创建 UI
Protobuf在Cmake中的正确使用
Protobuf是google开发的一个序列化和反序列化的协议库,我们可以自己设计传递数据的格式,通过.proto文件定义我们的要传递的数据格式。例如,在深度学习中常用的ONNX交换模型就是使用.proto编写的。我们可以通过多种前端(MNN、NCNN、TVM的前端)去读取这个.onnx这个模型,但是首先你要安装protobuf。
老潘
2023/10/19
2K0
Protobuf在Cmake中的正确使用
在Go中如何正确重试请求
我们平时在开发中肯定避不开的一个问题是如何在不可靠的网络服务中实现可靠的网络通信,其中 http 请求重试是经常用的技术。但是 Go 标准库 net/http 实际上是没有重试这个功能的,所以本篇文章主要讲解如何在 Go 中实现请求重试。
luozhiyun
2022/09/21
2.1K0
在Go中如何正确重试请求
让 HyperTerminal 正确显示中文
版权声明:本文为[他叫自己Mr.张]的原创文章,转载请注明出处,否则禁止转载。 https://micro.blog.csdn.net/article/details/78347569
他叫自己MR.张
2019/07/01
1.9K0
在 RN 中构建自适应 UI
移动开发的世界在不断变化,随之而来的是对能够适应任何设备或方向的用户界面的需求。React Native 提供了一套丰富的工具来构建这样的需求。
前端修罗场
2023/10/23
6440
在 RN 中构建自适应 UI
小技巧 - 在Finder中显示路径
即 option + command + P键 ,之后你的Finder就可以显示当前路径了!
老高的技术博客
2022/12/28
3.7K0
小技巧 - 在Finder中显示路径
在Android中显示APNG动图
APNG(Animated Portable Network Graphics)是一个基于PNG(Portable Network Graphics)的位图动画格式,用途类似GIF,其诞生的目的是为了替代老旧的 GIF 格式。
Clayman Twinkle
2019/04/04
17.7K1
在Android中显示APNG动图
Swagger UI 在Spring boot中的应用
Swagger UI是一个自动生成Java web接口文档的库。Swagger UI可以帮助前端开发者和后端开发者方便地进行沟通,后端开发者可以因此节省很多写接口文档的时间和精力,前端开发者也可以得到一个完备清晰的文档。
leaforbook
2019/03/01
2.1K0
Swagger UI 在Spring boot中的应用
在PHP中strpos函数的正确使用方式
首先简单介绍下 strpos 函数,strpos 函数是查找某个字符在字符串中的位置,这里需要明确这个函数的作用,这个函数得到的是位置。 如果存在,返回数字,否则返回的是 false。 而很多时候我们拿这个函数用来判断字符串中是否存在某个字符,一些同学使用的姿势是这样的 // 判断‘沈唁志博客’中是否存在‘博客’这个词 if (strpos('沈唁志博客', '博客')) { // 如果存在执行此处代码 echo '存在'; }else{ // 如果不存在执行此处代码 e
沈唁
2018/05/24
5.7K0
在vue中解析md文档并显示
【说明:】markdown-loader、html- loader是为了让vue能够解析md格式的文件,读取出来,然后使用marked将读取出来的数据转换成html格式渲染到页面上。使用marked是为了使用更方便。
前端小tips
2021/11/30
6.5K0
在vue中解析md文档并显示
在 WordPress 中如何定义字段依赖显示
WPJAM Basic 插件作为我们「WordPree果酱」团队所有插件和项目的基础,其中表单字段的渲染就是其中最重要的一个能力,我们做到了只需配置就能使用,无需额外增加页面的 JavaScript 的交互代码。
Denis
2023/04/13
8.9K0
点击加载更多

相似问题

Spring Boot + Maven:找不到repositoryFactoryBean

282

Maven在Spring Repo中找不到Spring Boot 2.0.0.M2的工件

111

找不到Spring boot maven插件类

71

无弹簧Boot的Spring Boot 2执行器

12

Spring Boot Maven插件-spring-boot:运行和生产

24
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档