反射真的那么慢以至于我不应该在有意义的时候使用它吗? [复制]

2024-04-23

可能的重复:
.NET 反射的成本有多高? https://stackoverflow.com/questions/25458/how-costly-is-net-reflection

“优雅”的解决方案problem https://stackoverflow.com/questions/616447/what-is-the-best-way-to-enforce-properties-that-must-be-implemented-at-each-subcl我所要做的就是使用属性将一个类及其属性与另一个类及其属性关联起来。问题是,要将其转换为另一个,我必须使用反射。我正在考虑将其用于将托管在云上的服务器端应用程序。

我听过很多“反射很慢,不要使用它”的传言,到底慢到什么程度呢?它的 CPU 密集程度是否如此之高,以至于我的 CPU 时间会成倍增加,以至于我实际上要为在云架构的底部使用反射的决定付出代价?


以防万一您没有看到原始问题的更新:当您反思以查找支持特定属性的所有类型时,您有一个使用缓存的绝佳机会。这意味着您不必在运行时多次使用反射。

为了回答一般问题,反射比原始编译方法调用慢,但它比访问数据库或文件系统快得多,而且几乎所有 Web 服务器都一直在执行这些操作。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

反射真的那么慢以至于我不应该在有意义的时候使用它吗? [复制] 的相关文章

  • 从父类调用子类方法

    a doStuff 方法是否可以在不编辑 A 类的情况下打印 B did stuff 如果是这样 我该怎么做 class Program static void Main string args A a new A B b new B a
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • C#:如何防止主窗体过早显示

    在我的 main 方法中 我像往常一样启动主窗体 Application EnableVisualStyles Application SetCompatibleTextRenderingDefault false Application
  • 在.rdlc报告的底部设置一个文本框

    我在 rdlc 报告中使用 tablix 有一个文本框 其中包含文本 签名 我想将此文本框放置在报告最后一页的底部 就在页脚之前 我已经用谷歌搜索了这个解决方案 但没有找到满意的结果 我的环境是VS2010 framework 4 0 有什
  • 如果使用 SingleOrDefault() 并在数字列表中搜索不在列表中的数字,如何返回 null?

    使用查询正数列表时SingleOrDefault 当在列表中找不到数字时 如何返回 null 或像 1 这样的自定义值 而不是类型的默认值 在本例中为 0 你可以使用 var first theIntegers Cast
  • Qt moc 在头文件中实现?

    是否可以告诉 Qt MOC 我想声明该类并在单个文件中实现它 而不是将它们拆分为 h 和 cpp 文件 如果要在 cpp 文件中声明并实现 QObject 子类 则必须手动包含 moc 文件 例如 文件main cpp struct Sub
  • 在 ASP.NET Core 3.1 中使用包含“System.Web.HttpContext”的旧项目

    我们有一些用 Net Framework编写的遗留项目 应该由由ASP NET Core3 1编写的API项目使用 问题是这些遗留项目正在使用 System Web HttpContext 您知道它不再存在于 net core 中 现在我们
  • vector 超出范围后不清除内存

    我遇到了以下问题 我不确定我是否错了或者它是一个非常奇怪的错误 我填充了一个巨大的字符串数组 并希望在某个点将其清除 这是一个最小的例子 include
  • 从路径中获取文件夹名称

    我有一些路c server folderName1 another name something another folder 我如何从那里提取最后一个文件夹名称 我尝试了几件事 但没有成功 我只是不想寻找最后的 然后就去休息了 Thank
  • 如何衡量两个字符串之间的相似度? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 给定两个字符串text1 and text2 public SOMEUSABLERETURNTYPE Compare string t
  • 需要哪个版本的 Visual C++ 运行时库?

    microsoft 的最新 vcredist 2010 版 是否包含以前的版本 2008 SP1 和 2005 SP1 还是我需要安装全部 3 个版本 谢谢 你需要所有这些
  • 在 Dynamics CRM 插件中访问电子邮件发件人地址

    我正在编写一个 Dynamics CRM 2011 插件 该插件挂钩到电子邮件实体的更新后事件 阶段 40 pipeline http msdn microsoft com en us library gg327941 aspx 并且在此阶
  • C - 直接从键盘缓冲区读取

    这是C语言中的一个问题 如何直接读取键盘缓冲区中的数据 我想直接访问数据并将其存储在变量中 变量应该是什么数据类型 我需要它用于我们研究所目前正在开发的操作系统 它被称为 ICS OS 我不太清楚具体细节 它在 x86 32 位机器上运行
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • 32 位到 64 位内联汇编移植

    我有一段 C 代码 在 GNU Linux 环境下用 g 编译 它加载一个函数指针 它如何执行并不重要 使用一些内联汇编将一些参数推送到堆栈上 然后调用该函数 代码如下 unsigned long stack 1 23 33 43 save
  • const、span 和迭代器的问题

    我尝试编写一个按索引迭代容器的迭代器 AIt and a const It两者都允许更改容器的内容 AConst it and a const Const it两者都禁止更改容器的内容 之后 我尝试写一个span
  • 如何在 C++ BOOST 中像图形一样加载 TIFF 图像

    我想要加载一个 tiff 图像 带有带有浮点值的像素的 GEOTIFF 例如 boost C 中的图形 我是 C 的新手 我的目标是使用从源 A 到目标 B 的双向 Dijkstra 来获得更高的性能 Boost GIL load tiif
  • 限制C#中的并行线程数

    我正在编写一个 C 程序来生成并通过 FTP 上传 50 万个文件 我想并行处理4个文件 因为机器有4个核心 文件生成需要更长的时间 是否可以将以下 Powershell 示例转换为 C 或者是否有更好的框架 例如 C 中的 Actor 框
  • 使用 libcurl 检查 SFTP 站点上是否存在文件

    我使用 C 和 libcurl 进行 SFTP FTPS 传输 在上传文件之前 我需要检查文件是否存在而不实际下载它 如果该文件不存在 我会遇到以下问题 set up curlhandle for the public private ke
  • 恢复上传文件控制

    我确实阅读了以下帖子 C 暂停 恢复上传 https stackoverflow com questions 1048330 pause resume upload in c 使用 HTTP 恢复上传 https stackoverflow

随机推荐

  • 如何将项目添加到布局中的特定索引

    我按照这个示例创建一个流布局 http doc qt io qt 4 8 qt layouts flowlayout example html http doc qt io qt 4 8 qt layouts flowlayout exam
  • 如何在滚动时实现图像淡入效果(如 mashable.com)

    我想知道 mashable com 上图像的淡入效果 请参阅http mashable com 2009 08 14 google android logo remixes http mashable com 2009 08 14 goog
  • Ember:断言失败:EmberObject.create 不再支持定义计算属性

    我使用的是 Ember 2 16 版本 我们升级到了 3 8 版本升级后 我看到此错误 但无法弄清楚错误来自何处 在什么情况下我会收到此错误 我看到其中一篇帖子 Ember JS 中的动态计算属性已弃用 https stackoverflo
  • 使用 php 和 mysql 将多个复选框值存储到数据库

    我想将多个复选框值存储在单个字段中 我使用该链接http www mindfiresolutions com Storing array data to MySQL using PHP 1296 php http www mindfires
  • 如何在不存储 TypeScript 的情况下进行内联类型检查?

    我有一些界面 ITestInterface foo string 我想将此接口的实例作为参数传递给函数 该函数将采用任何对象类型 因此它本身不会进行类型检查 为了确保对象的类型正确 我可以使用存储 const passMe ITestInt
  • 布尔变量不是默认总是 false 吗?

    我声明了一个布尔变量bool abc 在一个类中 并认为默认情况下它是错误的 一个if我的程序中的条件 if abc 结果是true 所以我输出abc的值 看到它包含值55 这正常吗 我们是否总是必须分配 bool abc false 以确
  • Action Filter 中的 UnitOfWork 似乎正在缓存

    我有一个使用 IoC Unity 的 MVC 3 站点 我的模型是使用 EF4 和 POCO 生成的 我正在使用操作过滤器来提交我的工作单元 public class UseUnitOfWorkAttribute ActionFilterA
  • App.config - 加密部分错误:

    我有一个对配置文件中的部分进行加密的应用程序 当我第一次尝试从配置文件中读取加密部分时 我收到一条错误消息 无法识别的属性 configProtectionProvider 请注意 属性名称区分大小写 config Configuratio
  • 如何删除选中时覆盖 UITabBarItem 的蓝色方块?

    我有一个 iPad 应用程序 Xcode 5 iOS 7 ARC 和 Storyboards 我有一个UITabBarController 并且每个场景都有一个UITabBarItem 当我点击选项卡栏项目时 它会转到正确的场景 但 当前
  • 如何列出拥有活跃订阅者的所有 pubnub 频道?

    我想列出与具有活跃订阅者的订阅密钥关联的所有频道 有没有办法用 pubnub 做到这一点 如果这有什么区别的话 我正在使用 JavaScript API PubNub 现在 API 返回与订阅键关联的频道列表 其中存在订阅者 PUBNUB
  • ASP.NET 5 MVC6 User.GetUserId() 返回错误的 ID

    我在 ASP NET 5 中有一个简单的项目 只有一个注册用户 我尝试通过扩展方法获取当前登录用户的IDGetUserId from using System Security Claims命名空间 不幸的是 这个方法返回给我不存在的ID
  • 数据表选择前5行

    您好 有什么方法可以从数据表中选择前 5 行而不进行迭代吗 我认为 你可以使用 LINQ datatable AsEnumerable Take 5
  • 编译动态内容 - AngularJS

    我正在重写这个问题 因为我认为原来的问题不太清楚 基本上 我有一个 包装器 指令 我试图将属性动态添加到包装 嵌入 元素之一 我可以让它工作 但 Angular 似乎不知道添加后的新属性 如果我使用 compile那么 Angular 确实
  • 有没有一种简单的方法对编译器输出进行颜色编码?

    gcc 或其他编译器 经常生成大量文本输出 并且很难看出错误在哪里或错过警告 我已经做了一些搜索 但还没有找到一个干净简单的解决方案来对编译器输出进行颜色编码 例如警告是黄色 错误是红色等 gcc 4 9好像添加了这个功能 https gc
  • 我可以从 FoxPro 通用字段中提取文件吗?

    我正在将 VFP 9 应用程序移植到 SQL Server VFP 应用程序有一些表 其中包含 常规 字段 查询字段时我得到一个字节数组 当我将它保存到磁盘时 我可以查看里面并看到它是一个Word文档 或者一个Paint BMP等 通过阅读
  • 规范哈夫曼编码算法

    你好 我正在尝试实现 Canonical huffman 编码 但我不明白 wiki 和 google 指南 我需要更抽象地解释 我试过这个 1 获取常规哈夫曼编码长度的代码列表 像这样 A code 110 length 3 B code
  • lambda 可以使用 *args 作为参数吗? [复制]

    这个问题在这里已经有答案了 我正在使用计算总和lambda像这样 def my func args return reduce lambda x y x y args my func 1 2 3 4 它的输出是10 但我想要一个lambda
  • 我可以在运行时选择一个特征对象而不使用 Box 吗?

    我想分支并决定在运行时在函数中使用的 Trait 实现 请参阅poly read在下面的代码示例中 Trait 对象是在 if 表达式的分支臂内部构造的 并且只需要在 if 表达式的生命周期内存在poly read但我需要Box它是因为无法
  • 无法更新 EntitySet '...',因为它有 DefiningQuery

    我将 MVC 4 和 C 4 5 与 EntityFramework 4 一起使用 我设置了一个简单的多对多表 tblAdminUser gt tblAdminUserRole lt tblAdminRole 当我尝试向管理员用户添加角色时
  • 反射真的那么慢以至于我不应该在有意义的时候使用它吗? [复制]

    这个问题在这里已经有答案了 可能的重复 NET 反射的成本有多高 https stackoverflow com questions 25458 how costly is net reflection 优雅 的解决方案problem ht