问题标签 [aot]
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.
java - 如何将类型化集合从 clojure 传递给 java?
我知道 clojure/java 互操作的基础知识:从 clojure 调用 java,反之亦然。但是,我无法将类型化集合从 clojure 返回到 java。我试图List<TypedObject>
从调用clojure的java代码中看到这种性质的东西。
让我们考虑一下我正在使用 clojure 编写一个 API,该 API 将作为 jar 文件分发,以便从 java 中使用。我的问题真的是如何通过什么来代替 ???? AOT 的 :gen-class 上面的问号,以便程序员使用我的 api 在 java 中编写一段代码,createListofTypedObjects() returns List<TypedObject>
例如,可以从 eclipse 中获得适当的智能感知/代码完成(即:)。
java - 我正在寻找一个不那么琐碎的 java / clojure 互操作示例
有没有人想通过提供一个清晰的例子来回答我在这里链接的问题how-to-pass-a-typed-collection-from-clojure-to- java堆?
java - 免费的 AOT Java 编译器
有谁知道一些免费的 AOT Java 编译器?我只找到了一个 - http://gcc.gnu.org/java/。
java - 如何在 IKVM 静态和动态模式之间进行选择?
我在我的 .NET 应用程序中部署了一些 Java 库。我应该使用 ikvmc 将 Java 库转换为 DLL,还是应该使用动态功能在运行时进行转换?
我希望使用 ikvmc 会减少应用程序的初始负载。有没有人有任何经验来验证这一点?另一方面,如果我走动态路线,我的构建过程会简单得多。
从理论上讲,前期转换也可以更早地发现转换错误。但是,我的测试覆盖率应该可以缓解这个问题。
另外,我想 ikvm 可以在磁盘上的某个地方缓存动态转换的程序集,这样只有第一次加载(可能是设置的一部分)会更慢。不过,我在 ikvm 文档中没有看到任何内容表明情况确实如此。
clojure - 如何最小化 leiningen (Clojure) 中的 AOT 编译
当您使用 leiningen 创建 Clojure 项目时,所有 *.clj 文件都被编译为 AOT。通常不需要 AOT 编译,我想尽量减少它。
这对于我提高对 Clojure 作为 Java 主导环境中的补充的接受度是必要的。将单个类文件作为胶水与几个 kB clj 文件一起“出售”更容易,而不是拥有 250+ kB 类文件,名称奇怪并隐藏在其中一个小 clj 文件(这是'甚至在执行期间不再阅读)。
理想情况下,“lein compile”的结果将只有一个小类文件(连同 clj-files 和 clojure-library)实现所需的类实例。
实现这一目标的最简单方法是什么?我宁愿不写一行Java(当然)。
技术人员反馈后更新
我不怀疑这是一个 leiningen 问题。让我用一个例子来解释我所追求的。请原谅示例的长度。我正在使用 leiningen 1.3.1,但我认为 1.4.0-SNAPSHOOT 的行为方式相同。
现在将 project.clj 更改为(添加“:main dummy.core”):
和 src/dummy/core.clj 到:
现在编译它:
这会在classes/dummy中生成以下文件:
这都是正确的,我可以执行结果:
现在是我想要的,但我手动执行:我可以删除除core.class之外的所有类文件,并将core.clj复制到现在看起来很空的classes/dummy中:
core.class 包含在运行时加载 core.clj 的代码,结果仍然是一样的,我仍然可以这样做:
我还可以修改 core.clj(注意:在classes/dummy中!),当然不需要重新编译更改。
现在我的问题归结为:有没有更简单的方法来获取这个 core.class?
compiler-construction - 使编译后的二进制文件以本机速度完美运行,而无需从另一个系统上的源代码重新编译?
我知道很多人第一眼看到这个问题可能会立即大喊“Java”,但不,我知道 Java 的品质。请允许我先详细说明我的问题。
通常,当我们希望我们的程序在系统上以本机速度运行时,无论是 Windows、Mac OS X 还是 Linux,我们都需要从源代码编译。如果你想在你的系统中运行另一个系统的程序,你需要使用虚拟机或者模拟器。虽然这些工具允许您在非本地操作系统上使用您需要的程序,但它们有时会出现性能和故障问题。
我们还有一个更新的编译器,称为“JIT Compiler”,编译器会在执行前将字节码程序解析为本地机器语言。使用 JIT Compiler 可能会在很大程度上提高性能,但性能仍然与在本机系统上运行它不同。
Linux 上的另一个程序 WINE 也是在 Linux 系统上运行 Windows 程序的好工具。我曾尝试在其上运行 Team Fortress 2,并尝试尝试一些设置。我在 Windows 上以 1280 x 1024 的中高设置获得约 40 fps。在 Linux 上,我需要将所有内容都调低至 1280 x 1024 以获得约 40 fps。不过有两点值得注意:
- 无论我将其设置为低还是高,多边形模型设置似乎都不会影响帧率。
- 当有后期处理效果或一些特殊效果需要对当前帧的绘制像素进行操作时,帧率会下降到 10-20 fps。
从这一点来看,我可以看到法线多边形渲染还不错,但是当涉及到需要显卡才能工作的较新渲染方法时,它就会慢下来。
无论如何,这个问题是相当理论的。有什么我们可以做的吗?我看到WINE可以运行STEAM和军团要塞2。虽然有缺陷,但它们可以在较低的设置下运行。或者,也许我还应该问,“是否可以将一个系统上的整个程序翻译到另一个系统而无需从源代码重新编译并获得本机速度? ”我看到我们也有 AOT 编译器,是否可以将它用于某些事情像这样?或者有太多的限制(例如 DirectX 调用或软件架构的差异),使得不可能有一个完美且非原生的以原生速度运行的系统程序?
java - 是否有适用于 Mac OSX 的本机 Java AOT?
我想知道 Mac 是否有 AOT 编译器来将 Java 应用程序编译为本机可执行文件,从而消除对 JRE 的需要?
我已经看到了适用于 Windows 和 Linux 的商业示例,但除了开源 GCJ 之外,还没有找到任何适用于 Mac 的示例,后者在一些 poplar java 库中取得了有限的成功。
Mac 的本机可执行文件将摆脱 JRE,并可能允许对其进行签名,从而允许 Java 开发的应用程序可能被应用商店接受。
c# - C# Mono aot 与 protobuf-net 获取 ExecutionEngineException
首先非常感谢 protobuf-net http://code.google.com/p/protobuf-net/的作者 Marc Gravell 。这真是一个很棒的资源。无论如何,我希望 Marc 或其他人可以帮助我解决这个异常。
我正在尝试使用 Unity3D 游戏引擎在移动设备(iOS 和 Android)上实现 protobuf-net。Unity 3.2 使用 Mono 2.6,这是对 mono 的略微修改版本。
它在编辑器中运行良好,但在 iOS 设备上运行时它在它尝试序列化的第一个成员处失败。请注意异常中的 --aot-only 标志。我认为 Unity 基本上是通过 Mono 的 aot 功能构建 ARM 程序集,尽管我不明白它在后台做什么。
IRC 上有人建议我可以提前声明这些类型的变量,编译器不必在运行时对它们进行 JIT。似乎是个好主意,但不幸的是,这些就像内部泛型类型,并且不知道在 C# 中编写什么来声明变量以伪造编译器。任何人都可以解释上述消息并让我知道编译器需要提前知道什么吗?还有其他防止这种情况发生的策略吗?顺便说一句,这是错误的类的顶部
感谢 Mono 和 protobuf 专家帮助我解决这个问题!protobuf-net 似乎是一个很棒的轻量级序列化和 RPC 有线协议,非常适合 iOS 和 Android 应用程序,所以我期待使用它。
c# - Monotouch 崩溃字典 FirstOrDefault() 类型初始化器 PredicateOf
经过 2 周的开发后,我第一次在 iphone 上尝试了我的应用程序,它在以下行崩溃(在模拟器中完美运行):
我有以下代码:
希望有人知道该怎么做。
谢谢