问题标签 [native-code]

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 投票
1 回答
180 浏览

dll - 将 C 代码用作 java 本机代码非常慢

我用 JNI 从 Java 调用 C 代码作为本机代码。所以,我创建了一个 dll 并从 Java 代码中加载它。这很奇怪,但是如果我运行与 .exe 相同的 C 代码,它会比用作本机代码的相同代码更快。为什么??我使用 Windows 7 64 位、jdk 32 位、Cygwin、32 位 dll 构建 dll 的调试和发布模式有什么区别吗?

0 投票
2 回答
2192 浏览

assembly - 什么是在线学习 ASM 的好地方?

我想学习 ASM,我在网上查了很多文章,但我认为优秀的 ASM 文章在网上很少见。

那么,有谁知道学习 ASM 的在线教程在哪里?

0 投票
1 回答
8711 浏览

android - 是否可以在 android 应用程序中通过 JNI 打印 C 代码控制台输出?

我阅读了这篇关于如何在 Android 应用程序中通过 JNI 调用本机 c 代码的文章。我已经测试了代码并且工作正常!该程序进行 JNI 调用并打印来自 C 函数的字符串。是否可以以相同的方式在 Android 应用程序中显示 C 函数的控制台输出(例如 printf 的结果等)?

http://integratingstuff.com/2010/12/12/calling-native-c-code-through-jni-in-android-applications/

0 投票
1 回答
1177 浏览

.net - C# 的反汇编:为什么 DUMPBIN 本机代码与 Debug 的反汇编如此不同?

假设这是我的程序 simpleCsharp.exe:

如果我在 Debug 的 Disassembly 窗口中查看一个简单的 C# 程序的反汇编,那么本机代码输出至少是有一定意义的。例如,这是 Debug 对 Main 的反汇编,优化在:

但是,如果我在同一个 C# 程序集上运行 DUMPBIN(使用 Debug Info = "None" 所以它不只显示字节),即

生成文件中的本机代码输出甚至与我在 Debug 的反汇编中看到的不太相似。在 dumpbin 的文件中,我什至看不到调试反汇编中的一条指令或值。所以找不到 2 行本机代码(上图)。无论是在 Visual Studio (2010) 生成的程序集上运行 dumpbin 还是使用ngen.exe生成本机映像,然后在本机映像文件 simpleCsharp.ni.exe 上运行 dumpbin 都是这种情况。

Debug 中启用了优化,并且 build 设置为 Release,我运行 Debug 的程序集与我提供给 ngen 的程序集之间的唯一区别是 Debug Info = "None"。

这是我在原生映像文件上运行 dumpbin 时 simpleCsharp 程序的反汇编:

https://docs.google.com/leaf?id=0B9u9yFU99BOcYjNmNGRmNTItZjQ0NC00YmI0LWEyZTQtNjdkNDdhYTc2MmNm&hl=en

我至少希望看到数字 FEFEFE 或 EEEEEE 出现在 dumpbin 的输出中,它确实出现在调试反汇编中。

有人可以解释一下为什么我在同一个程序的本机图像文件的 dumpbin 输出中看不到一行 Debug 的反汇编代码吗如果是因为优化,您介意提供一些细节吗?

谢谢

0 投票
1 回答
1833 浏览

android - Android上的OpenGL ES坐标系?

我是 Android 开发新手,目前我正在使用 NDK 玩 OpenGL ES 1。不幸的是,我遇到了坐标系的问题。在官方的例子中,下面的代码是用来获取Opengl Surface的宽高的。

现在,当我想设置视口时

我渲染了一个四边形,然后这个四边形不是一个四边形,它是一个变形的矩形并且居中。

如何正确设置视口和坐标系?

0 投票
5 回答
10738 浏览

java - 为什么字节码可能比本机代码运行得更快

Java 很慢。

这不仅仅是一个“都市传说”,它似乎是一个事实。由于延迟,您不会将其用于实时编码,也不会将其用于集群/并行计算。那里有成千上万的基准测试,特别是“Java vs C# vs C++”。

http://benchmarksgame.alioth.debian.org/

根据上面的网站,不仅 Java 的性能几乎与 C 一样好(远非其他),而且 Scala 和 Clojure(都是在 JVM 上运行的函数式语言)都具有比 OCaml、Erlang 更好的性能。

还有很多“Java 比 X 更快”,也有(例如,这里有一个关于 SO:Java Runtime Performance Vs Native C / C++ Code?的问题)。

因此,在某些情况下,Java 似乎很快。有人可以解释为什么吗?

为什么在某些情况下,在给定动态代码(Scala、Clojure)和垃圾收集的情况下,字节码可能比本机代码运行得更快?如果它更快,为什么还有延迟?

这似乎是一个矛盾,有人可以解释一下吗?

0 投票
1 回答
567 浏览

android - 使用 NDK(本机代码)的应用程序下降。我怎样才能找出原因?

我的应用程序正在使用 NDK(在我的情况下为 4r-crystax)来处理来自相机的图像。问题是,它在工作几分钟后就会下降。我想可能有一些内存泄漏或类似的东西,但我不知道如何找出问题所在。这是围绕此错误的日志:

有任何想法吗?有什么有用的工具可以帮助我找到答案吗?

在处理本机代码期间,Android 是否可能会杀死屏幕活动?

0 投票
1 回答
1327 浏览

debugging - 通过 ReSharper 调试单元测试时附加到本机代码

在 Visual Studio 2008 中使用 ReSharper 调试 NUnit 测试时,是否可以将 ReSharper 测试运行程序附加到本机代码调试器?默认情况下,它只附加 Visual Studio 托管调试器。

0 投票
1 回答
278 浏览

scheme - 如何从(MIT)方案调用本机代码?

如何MessageBox从 Scheme 中调用本机函数(例如 )?

0 投票
4 回答
8953 浏览

c# - 从 .net DLL 导出本机 C 函数?

我有一个用 C# 编写的 .net 程序集,我希望从程序集中导出本机 C 函数。

我有一个应用程序,它将对“插件”文件夹中的任何 DLL 执行“LoadLibrary()”。加载 DLL 后,应用程序执行“GetProcAddress”以查找名为“Register”的函数。应用程序希望此函数遵循 C 调用约定。

如何从我的 .net 程序集中导出名为“Register”的函数,以便成功连接该应用程序的插件系统?

谢谢,安德鲁