问题标签 [inlining]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
5 回答
1107 浏览

c# - 有没有办法在 c# 中强制执行函数内联?

据我所知,没有办法暗示 c# 编译器内联一个特定的函数,我猜它是这样设计的。

我还认为不让程序员指定要内联的内容和不内联的内容通常是一个好主意,因为这意味着您认为自己比 JIT 编译器更聪明(我对那些实际上是的人表示敬意),但是,什么如果我想指定代码的关键部分需要不惜一切代价非常快,无论如何在目标机器上实现它?到目前为止,您还不能做这样的事情,我想知道 c# 语言和 JIT 是否都将支持此功能。

就我而言,我知道目标机器是什么,而且我知道函数内联将有助于提高性能。这让我认为,执行函数内联的唯一方法是了解 JIT 在什么情况下会这样做,但我认为这也不是一个好主意,

任何关于这个主题的光都将不胜感激。

谢谢。

0 投票
6 回答
7081 浏览

java - 所有编译时常量都内联吗?

假设我有这样的课程:

我的应用程序中的许多其他类都在使用这些选项。现在,我想单独更改其中一个选项并仅部署已编译的类。但是,如果这些字段在消费者类中是内联的,这将变得不可能,对吧?

是否有任何选项可以禁用编译时常量的内联?

0 投票
4 回答
1264 浏览

c# - 内联函数

什么是内联?

这有什么用途?

你可以在 C# 中内联一些东西吗?

0 投票
3 回答
68 浏览

coding-style - 在游戏的“移动功能”中包含“检查位置”功能,还是在外部功能中包含“检查位置”功能更有效?

我正在用 C++ 创建一个游戏(说到这个,我使用的代码重要吗?),可以粗略地描述为棋盘游戏,我想知道这两个“检查字符是否超出界限”中的哪一个功能更高效:

一:

本质上,第一个移动每个实体,然后检查所有实体的位置并相应地重置它们,第二个确保玩家移动不会将他移出边界,而不是等到循环结束。

我想知道这两个(系统?)中的哪一个比另一个更有效或更快,或者,如果它们都相等,其中哪一个是更好的编码风格?

0 投票
8 回答
12885 浏览

java - Java中的内联

在 C++ 中,我可以声明一个“内联”方法,编译器可能会内联它。据我了解,Java 中没有这样的关键字。

如果 JVM 决定这样做,内联是否完成?我能以某种方式影响这个决定吗?

0 投票
1 回答
659 浏览

interface - 虚拟 vs 接口 poco,哪个更快?

我正在维护一个设计如下的应用程序:

数据胶囊是一个简单的类,有很多 getter 和 setter(属性)。它使用 DI 框架并始终使用 IoC 容器来提供数据胶囊的实例(我很幸运!)。

问题是,我需要将“更改通知”机制引入simplePoco

我有几个选择:

  • 引入IPoco并修改杂乱的代码,以便我可以有simplePoco速度或notifyingPoco当我想要更改通知(选择性慢)?或者 ...

  • 让一切虚拟化并notifyingPoco在上面滚动我自己的自定义类simplePoco(甚至更慢)?

  • 我不知道的设计模式?

它是一个客户端/服务器系统,但我只是在修改服务器部分,所以如果可能的话,我宁愿 接触凌乱的代码或客户端代码(有序列化程序和反射以及可怕的忍者东西......)不小心打破任何东西。

使用接口会阻止 JIT 内联对 getter/setter 的调用吗?

考虑到 simplePoco 实例被严重滥用,最好的方法是什么?

0 投票
2 回答
371 浏览

c++ - 我是否应该担心 g++ 警告说“内联失败”?

在我正在办公室工作的一个项目中,当我们编译一个发布版本(使用 -Os)时,我们会收到来自 g++ 的数百条警告,说内联失败。这些警告中的大多数似乎来自 boost,但是有些来自我们自己的库头文件(我们链接到的二进制 .dylibs)。通常可以安全地忽略这些警告,还是我应该担心它们?

注意:我们在 Mac OS X 上使用 g++ 4.0

0 投票
4 回答
5407 浏览

debugging - 使用劳特巴赫 (Trace32) 进行调试

在使用跟踪时,我发现一些函数没有在源代码中列出,而试图找到它们以便放置断点。这些功能似乎只有在我以汇编格式查看源代码时才会出现。

我和我的前辈谈过,他们告诉我如果任何函数只被调用一次,它将被 Trace 优化并显示为内联,因此可以在汇编中看到。

我的问题是:

  1. 这种优化是如何通过劳特巴赫发生的?
  2. 这有好处吗??
0 投票
2 回答
460 浏览

c# - lambda 是否内联?

简单的 lambda 表达式会被内联吗?

我倾向于(感谢 F# 和其他功能性尝试)将单个函数中存在的重复代码封装到 lambda 中,然后调用它。我很好奇我是否会因此产生运行时开销:

对比

哪个运行成本更高?

0 投票
10 回答
23782 浏览

java - 什么是内联?

我指的是这个讨论。我从未用 C 或 C++ 编写过任何代码。我没有任何CS背景。然而,我作为 Java 开发人员已经工作了 5 年,现在我决定学习更多关于 CS 的知识并做一些追赶。