jit相关内容

关于分段代码缓存(http://openjdk.java.net/jeps/197))的次要问题

我看到这个JEP(http://openjdk.java.net/jeps/197)介绍了三种代码缓存。 对我来说最明显的是-XX:NonNMethodCodeHeapSize。这是一个处理JVM内部数据的应用程序。 我不明白的是NonProfiledCodeHeapSize和ProfiledCodeHeapSize有什么区别。该文件说: 分层编译还引入了一种新的编译代码类型:检测的 ..
发布时间:2022-09-24 10:11:09 Java开发

JIT优化浮点问题

背景 所以我用C#做了一个不公平的绞刑的简单游戏(有一个单词列表,这些单词是基于我给玩家的信息(例如,单词长度),这些单词是有效的解决方案,随着时间的推移逐渐缩小,只有当只有一个可能的解决方案并且他们猜到了所有字母时,玩家才会赢)。 无论如何,重要的是要知道我有一行代码,如下所示: availableWords.RemoveAll(word => AmountInCommon(word) ..
发布时间:2022-06-12 09:26:29 C#/.NET

将从Python Numba CUDA内核调用加速的FFT

我需要计算256个元素的Float64信号的傅里叶变换。要求是这样的,我需要从cuda.jitt节内部调用这些FFT,并且必须在25usec内完成。唉,cuda.jit编译的函数不允许调用外部库=>我自己写的。唉,我的单核代码仍然太慢了(在Quadro P4000上大约250usec)。有没有更好的办法? 我创建了一个单核FFT函数,它可以提供正确的结果,但速度却慢了10倍。我不明白如何利用 ..
发布时间:2022-04-02 14:19:16 Python

使用clang API编译和运行C代码

我想使用clang/llvmAPI编译一个在字符串中定义的c函数,并立即执行它。 类似于: void main() { std::string codestr = "int foo(int bar) { return bar * 2; }" clang::??? *code = clang::???.compile(codestr); int result = code->c ..
发布时间:2022-03-21 22:32:28 其他开发

我是否可以将现有方法绑定到LLVM函数*,并从JIT编译的代码中使用它?

我正在研究LLVM C++API。我希望JIT编译代码并运行它。 但是,我需要从上述JIT编译的代码中调用C++方法。通常,LLVM将方法调用视为将对象指针作为第一个参数传递的函数调用,因此调用应该不是问题。真正问题是将该函数放入LLVM。 据我所知,对函数使用外部链接并按其名称获取是可能的。问题是,由于它是一个C++方法,它的名称将会被损坏,所以我认为这样做不是一个好主意。 创建F ..
发布时间:2022-03-21 22:09:53 C/C++开发

使用 const 局部变量有运行时的好处吗?

除了确保它们不能被更改(根据编译器错误的调整)之外,JIT 是否对 const locals 进行任何优化? 例如. public static int Main(string[] args){const int timesToLoop = 50;for (int i=0; i 解决方案 生成的IL不一样(使用Release模式): 使用常量局部 使用普通局部------------ ..
发布时间:2022-01-23 23:40:14 C#/.NET

解释 JIT 重新排序的工作原理

我已经阅读了很多关于 Java 同步以及所有可能出现的问题的信息.但是,我仍然有点困惑的是 JIT 如何重新排序写入. 例如,一个简单的双重检查锁对我来说很有意义: 类 Foo {私人易失性助手助手= null;//1公共助手 getHelper() {//2if (helper == null) {//3同步(这个){//4if (helper == null)//5助手 = 新助手( ..
发布时间:2022-01-22 20:42:36 Java开发

java什么时候比c++快(或者JIT什么时候比预编译快)?

可能重复: JIT 编译器与离线编译器 我听说在某些情况下,由于 JIT 优化,Java 程序或更确切地说是部分 Java 程序能够比 C++ 中的“相同"代码(或其他预编译代码)更快地执行.这是因为编译器能够确定一些变量的范围,避免一些条件并在运行时提取类似的技巧. 你能否举一个(或更好的——一些)例子,这适用于什么地方?并且也许概述了编译器能够优化字节码超出预编译代码可能的确切条 ..
发布时间:2022-01-17 08:45:27 Java开发

为什么添加局部变量会使 .NET 代码变慢

为什么注释掉这个 for 循环的前两行并取消注释第三行会导致 42% 的加速? int count = 0;for (uint i = 0; i 时间的背后是截然不同的汇编代码:循环中有 13 条与 7 条指令.该平台是运行 .NET 4.0 x64 的 Windows 7.启用了代码优化,并且测试应用在 VS2010 之外运行.[更新: Repro 项目,用于验证项目设置.] 消除中 ..
发布时间:2022-01-17 08:44:48 C#/.NET

JIT 编译器有什么作用?

我刚刚在观看 Google IO 视频,他们谈到了他们在 android 中包含的 JIT 编译器.由于 JIT 编译器,他们展示了性能改进的演示.我想知道 JIT 编译器到底是做什么的,想听听不同的人的意见. 那么,JIT 编译器的职责是什么? 解决方案 Java 代码通常以字节码的形式分布,是机器无关的伪代码.(同样的想法以前在 70 年代开发的 UCSD-p 系统 中使用.)这 ..
发布时间:2022-01-17 08:44:30 其他开发

即时编译器和解释器有什么区别?

Just-in-Time-Compiler 和 Interpreter 有什么区别,.NET 和 Java JIT 编译器有什么区别? 解决方案 Just-in-时间编译是在执行之前将非本地代码(例如字节码)转换为本地代码. 来自维基百科: JIT 建立在运行时环境中的两个早期想法之上:字节码编译和动态编译.它在本机执行之前在运行时转换代码,例如将字节码转换为本机机器码. ..
发布时间:2022-01-17 08:43:33 Java开发

如何检查 JIT 编译器是否在 Java 中关闭

我想知道如何检查 JIT 编译器是否已关闭.我有以下代码,旨在关闭 JIT 编译器.问题是,我不确定它是否真的这样做.所以我想知道是否有办法检查 JIT 是否关闭.我查看了 Compiler 类,但没有像 isDisabled/enabled() 这样的方法. 代码: Compiler.disable(); 任何帮助或指导将不胜感激. 解决方案 我不相信你可以在运行时关闭 JIT ..
发布时间:2022-01-17 08:40:13 Java开发

C# 编译器或 JIT 在什么级别优化应用程序代码?

我想知道这些信息以减少我的代码大小,这样我就不会浪费我的时间来优化将由编译器或 JIT 完成的事情. 例如: 如果我们假设编译器将调用内联到属性的 get 函数,那么我不必将返回值保存在局部变量中以避免函数调用. 我想推荐一个很好的参考来描述正在发生的事情? 解决方案 你可能想看看这些文章: JIT 优化 - (Sasha Goldshtein - CodeProj ..
发布时间:2022-01-17 08:33:43 C#/.NET

CLR 与 JIT

JIT 编译器和 CLR 有什么区别?如果您将代码编译为 il 并且 CLR 运行该代码,那么 JIT 在做什么?向 CLR 添加泛型后,JIT 编译有何变化? 解决方案 JIT 是 CLR 的一个方面. 具体来说,它负责将原始语言的编译器(例如 Microsoft c# 的 csc.exe)生成的 CIL(以下称为 IL)更改为当前处理器(以及它在当前处理器中公开的体系结构)的本机 ..
发布时间:2022-01-17 08:19:59 C#/.NET

处理来自 JITed 代码的(可能)很远的提前编译函数的调用

这个问题因过于宽泛而被搁置,大概是因为我为了“展示我的工作"而不是提出一个不费力的问题而进行的研究.为了解决这个问题,请允许我用一句话总结整个问题(这句话归功于@PeterCordes): 如何从 JITed 代码(我正在生成)中有效地调用 (x86-64) 提前编译的函数(我控制的,可能超过 2GB)? 我怀疑,仅此一项就会因为“过于宽泛"而被搁置.特别是,它缺少“您尝试过什么".所 ..
发布时间:2022-01-17 08:17:16 其他开发

JIT 编译器如何编译泛型?

我知道泛型是由 JIT 编译的(就像其他所有东西一样),与编译代码时生成的模板不同. 问题是可以在运行时使用反射创建新的泛型类型. 这当然会影响泛型的约束.其中已经通过了语义解析器. 有人可以解释这是如何处理的吗?究竟会发生什么? (代码生成和语义检查) 解决方案 我推荐阅读 C# 中的泛型、Java 和 C++:与 Anders Hejlsberg 的对话. Qn 1. ..
发布时间:2022-01-17 08:16:14 C#/.NET

JIT 编译器与离线编译器

是否存在 JIT 编译器比 C++ 等其他编译器更快的场景? 您认为未来 JIT 编译器只会看到一些细微的优化、功能但遵循类似的性能,还是会出现使其无限优于其他编译器的突破? 看起来多核范式有一些希望,但它不是通用魔法. 有什么见解吗? 解决方案 是的,肯定有这样的场景. JIT 编译可以使用运行时分析来优化特定情况,基于对代码当前实际执行的特性的测量,并且可以根据 ..
发布时间:2022-01-17 00:07:10 C#/.NET