问题标签 [runtime-compilation]
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.
performance - 如何加快 Common Lisp `IF` 语句的编译速度?
我有一个系统可以生成决策树并将它们转换为嵌套的 Common Lispif
语句,其中包含检查变量值是>=
或<=
给定整数的谓词,例如
然后我用它eval
来编译 Lisp 代码,生成运行速度比解释原始决策树快得多的函数。然而,这个编译步骤花费了惊人的时间:一个包含 5000 个嵌套 if 的函数需要花费一分钟来编译(在 Powerbook 上的 Clozure Common Lisp 中),尽管生成 if 语句需要大约 100 毫秒。为什么这么简单的结构要花这么长时间?我可以做些什么来大大加快速度,也许是一些声明?我非常感谢您提供的任何指示。
common-lisp - 如何在运行时编译 s-expression,然后在 Common Lisp 中执行
我正在开发一个生成程序(遗传编程)的程序。我在运行时构建了一个 s 表达式,今天我像这样使用 eval:
对多个 x 进行了评估,我想在运行时将 s 表达式编译成一个函数,然后为多个 x 调用它以提高性能。
我不知道该怎么做,我会很感激一些帮助。这是我所拥有的:
编辑: 感谢@RainerJoswig 我做了以下修改并且它有效:
spring-boot - 在运行时编译具有对嵌套 jar 的依赖项的 Java 类
在 Spring Boot 应用程序中,我在运行时执行以下操作:
- 生成 Java 类
- 编译它
- 使用反射访问编译类的一些静态字段。
我的代码基于这篇文章,但在运行时编译生成的类时遇到问题。在 IDE 中运行时编译工作正常,但从 Spring Boot 运行时 jar 编译失败,提示符号丢失或某些包不存在。我正在编译的类依赖于位于 jar 下的其他类,\BOOT-INF\lib\
并且编译器似乎无法使用现有的类加载器加载这些类。
我已经关注了这篇文章,它假设可以解决这个特定问题,但我UnsupportedOperationException
来自方法
的界面JavaFileManager
。
我在这里遇到了另一种可能的解决方案,但我不清楚完整的实现。
在运行时编译类时,这似乎是一个众所周知的问题,是否有任何明确的解决方案?
我目前正在使用 Java 10.0.2。
c# - C# Roslyn 在下一次编译中使用以前编译的类
我举个例子,假设我有以下代码。
我将在内存中使用 Roslyn 编译上述代码。接下来我想在内存中编译另一个代码以使用上面编译的类,让我们说下面。
我怎样才能使第二个代码使用第一个代码作为参考?或使用它?
java - Java程序在文件夹之间拆分
所以我想开发一个小游戏引擎。这具有供用户使用的主要引擎类,例如 Vector 和 Actor。由于我只需要一次引擎,我想让游戏使用相同的引擎,并且为了避免将所有游戏放在同一个 jar 中,我打算将它们放在单独的文件夹中,与引擎一个,然后为每个游戏的文件夹. 然后引擎应该能够加载例如。来自另一个文件夹的播放器类并利用它。
我认为一种解决方案可能是在运行时编译游戏文件夹。但是问题是这些文件相互依赖,并且依赖于已经在 JVM 中加载的编译类。对于这种方法:
例如,我们有三个类:一个来自引擎的 Actor,一个扩展了用户编写的引擎 Actor 类的 Player,以及第三个类,即由用户编写的项目,在 Player 中生成,但又需要 Player要编译,这意味着它们不能一个接一个地编译。
据我了解,当我们运行程序时,Actor 已经在 JVM 中编译好了。现在我们知道了一个包含所有要编译的类的文件夹,其中 Player 依赖于 JVM 中已编译的类,而文件夹中未编译的类则依赖于 Player。
现在我想编译 Player 类,我们还必须编译 Item,然后实例化 Player,以便我们可以四处移动并生成项目。
这是我的意思的一个基本示例:
在驱动器某处的文件夹中:
我试过使用 javac 命令,但我无法让它以某种方式与整个文件夹结构一起工作。
我希望我以合乎逻辑的方式解释它,如果这种方法没有意义。这只是一个想法,如果您有更好的方法,我会很高兴听到它。
非常感谢!
c# - C#有没有办法编译一个exe
当人们从 GitHub 下载我的项目时,我会在启动时启动设置指南,其中包含一个按钮,上面写着“启动连接字符串生成器”。
问题是 GitHub 不存储 .exe,因此我必须在每个视频或教程中解释“打开连接字符串生成器解决方案 > 构建”,然后运行连接字符串生成器或单击按钮“启动连接字符串生成器按钮”。
如果有一种方法可以按需编译 Connection String Builder 项目,这将是我理想的解决方案。
我知道我可以将 Connection String Builder 项目中的表单移动到主 (DataTier.Net) 项目的内部,但如果我不需要这样做,我不想这样做,因为我在桌面上保留了一个快捷方式连接字符串生成器。
ConnectionStringBuilder 的文件夹位于工具文件夹中,该文件夹是主项目的子文件夹。
我一直在寻找一种 Rosylyn 方法来按需编译项目,但是通过谷歌搜索找不到任何东西(我承认看了几页后确实放弃了)。正如下面的代码示例所示,我知道如何检查 .exe 是否存在,并且我希望能够RosylnCompiler.Compile(pathToProject);
检查 .exe 是否不存在。
有没有办法做到这一点?如果不是,我可以将我的消息框更新为说明或将表单复制到我的主项目中,但按需编译将是我理想的解决方案。
c# - 在 Unity3D 中为 IL2Cpp 构建运行时代码编译是否有任何解决方案?
我正在尝试在 Unity3D 中为 IL2CPP 构建 64 位 Android 在运行时编译 C# 代码。
我有一串要动态编译和执行的代码。我尝试过的事情是:
- https://github.com/aeroson/mcs-ICodeCompiler
- https://github.com/SoapCode/UCompile/tree/master/Assets/UCompile
- https://assetstore.unity.com/packages/tools/integration/roslyn-c-runtime-compiler-142753#reviews
但我要明白的是,以上所有内容都不适用于 IL2Cpp 构建。
下面的代码是使用:上面提到的第二个 Github repo 执行的。
使用第二个插件:
javascript - 什么是 Javascript 中的“运行时编译”?
我正在阅读这篇关于正则表达式的文章,它说“使用构造函数提供正则表达式的运行时编译”。然后它说“当您知道正则表达式模式将发生变化时使用构造函数”。我想知道的是,Javascript 中的运行时编译到底是什么?
r - 为什么 R 函数在第一次运行时会使用更多内存?
我一直在比较矢量化 R 代码和非矢量化 R 代码,并注意到函数在第一次运行时似乎使用更多内存。这是一个可重现的示例:
第一次运行时,squares(x)
使用的内存(mem_alloc
列)比x^2
:
但是如果我再次运行代码,我会得到非常不同的结果:
如果我再次运行基准测试,我会得到与第二次相同的结果。
如果,当我第一次启动 R 时,我在基准测试之前运行这些函数,我会得到以下结果:
请注意,内存使用量squares(x)
与第二次运行时一样低,但不是x^2
. 相反,如果我x^2
在第一个基准测试之前运行,则用于的内存x^2
下降到848B
.
这是因为用于 R 的即时编译的内存在函数第一次运行时包含在内存分析中吗?如果是这样,为什么会x^2
受到影响——操作符不是^
已经编译成字节码了吗?我是否误解了 R 中的内存分析功能?还是这里发生了其他事情?
asp.net-core - 在 Core3.1 中安装 Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation 时,项目必须提供配置错误的值
当我在 Web 项目和 Startup 中安装Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation时,添加:
,项目没有运行,错误是:
项目必须为配置提供一个值
我的 .NET-Core 版本是 3.1
如何解决这个问题?