标签: native-code

是什么让JVM的最新版本更快?

我最近看到多个声明,谈论Java(以及基于JVM的语言,如Scala)在性能上与C/C++代码的可比性.

例如,从ScalaLab项目的描述:

基于Scala的脚本编写速度,接近本机和优化Java代码的速度,因此与基于C/C++的科学代码接近甚至更好!

有人能指出我对这些JVM优化的概述吗?是否有任何真正的基准支持这一主张或提供一些真实的比较?

java performance jvm scala native-code

16
推荐指数
2
解决办法
3100
查看次数

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

我有一个用C#编写的.net程序集,我正在寻找从程序集中导出本机C函数.

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

如何从我的.net程序集中导出名为"Register"的函数,这样我就可以成功地与该应用程序的插件系统连接?

谢谢,安德鲁

.net c# plugins interop native-code

14
推荐指数
1
解决办法
7978
查看次数

如何在Android项目中使用ARM汇编代码?

我对Assembly和ARM并不是特别有经验,但我能够在其中编写一些例程,我想看看它们是如何在配备ARM的Android设备(Nexus S)上运行的.将汇编代码文件包含到Android项目中的过程是什么?我是否只能从本机代码或Java中调用它?

assembly android arm native-code android-ndk

14
推荐指数
2
解决办法
1万
查看次数

你如何使用C语言来制作红宝石?

我想看一些源代码或者某些链接,它们至少提供了一个用于在C语言中编写ruby gems的存根(C++ ??也可能吗?)

此外,你们中的一些人可能知道Facebook本身编译了一些代码作为php扩展以获得更好的性能.有人在Rails中这样做吗?如果是这样,您的体验是什么?你发现它有用吗?

谢谢.

编辑: 我想我会用我今天学到的一些东西回答我自己的问题,但是我会把问题留给另一个答案,因为我想看看别人对这个话题有什么看法

c ruby rubygems native-code

13
推荐指数
1
解决办法
1819
查看次数

如何在Android中获取音乐文件(MP3)的采样率和频率?

我正在开发android中的音频播放器.所以我想添加播放歌曲的细节,即艺术家姓名,持续时间,比特率和采样频率.我可以使用获取音乐文件的艺术家姓名和持续时间MediaStore.Audio.Media library.但我无法获得同一文件的比特率和采样频率.那么我怎么能得到相同的?

据我所知,它可以通过使用本机库来完成.但不知道怎么办?所以任何人都可以帮助我吗?

android bitrate media-player native-code android-ndk

13
推荐指数
2
解决办法
2万
查看次数

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

Java很慢.

这不仅仅是一个"都市传奇",它似乎是一个事实.由于延迟,您不会将其用于实时编码,也不会将其用于群集/并行计算.有数以千计的基准测试,特别是"Java vs C#vs C++".

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

根据上面的网站,不仅Java性能几乎和C一样好(远远不是其他),但Scala和Clojure(两种在JVM上运行的函数语言)都具有比OCaml,Erlang更好的性能.

而且还有很多"Java比X更快"(例如,这里有关于SO的问题:Java运行时性能与原生C/C++代码?).

因此,对于某些情况,Java似乎很快.有人可以解释原因吗?

为什么字节码可能比本机代码运行得更快,在某些情况下,给定动态代码(Scala,Clojure)和垃圾收集?如果速度更快,还有潜伏期怎么样?

这似乎是一个矛盾,有人可以摆脱光明吗?

java performance jvm native-code

13
推荐指数
2
解决办法
8722
查看次数

错误:无法构建gem native extension(ruby extconf.rb):Mac OSX

我正在尝试安装一个gem,我得到了这个错误,我自己和宝石作者从未见过这个错误.我该如何解决?

Davids-MacBook-Pro:web david$ sudo /usr/bin/gem install compass --pre
Password:
Building native extensions.  This could take a while...
ERROR:  Error installing compass:
ERROR: Failed to build gem native extension.

/System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/ruby extconf.rb
checking for ffi.h... no
checking for ffi.h in /usr/local/include,/usr/include/ffi... yes
checking for ffi_call() in -lffi... yes
checking for ffi_prep_closure()... yes
checking for ffi_raw_call()... no
checking for rb_thread_blocking_region()... yes
checking for rb_thread_call_with_gvl()... yes
checking for rb_thread_call_without_gvl()... yes
checking for ffi_prep_cif_var()... no
creating extconf.h
creating Makefile

make "DESTDIR="
compiling AbstractMemory.c
compiling ArrayType.c …
Run Code Online (Sandbox Code Playgroud)

ruby macos gem native-code

13
推荐指数
2
解决办法
5万
查看次数

将.NET程序集编译为x86机器代码

有没有办法将.NET程序集编译为本机代码(即x86)输出,即没有MSIL.

根据我的理解,如果你只是将x86指定为架构,这只会改变PE Header以指向JIT,但是程序集仍将包含MSIL并且将根据需要进行JITT.

NGen确实为指定的体系结构生成程序集文件,但它不是编译器,它的目的是提高性能但是你仍然需要原始的DLL,本机映像的存在只能避免JIT编译程序集但你无法获得原生图像并使用它,可以吗?

那么,有没有办法从.NET实际编译到本地机器代码?

.net c# .net-assembly native-code

12
推荐指数
2
解决办法
2020
查看次数

如何使用ngen.exe进行编译以及如何运行生成的本机代码?

我想使用ngen命令行编译一个C#程序用于特殊目的.所以我在VS2010中创建了一个控制台应用程序并将其命名ngentest.在名称ngentest.vshost.exe中创建一个文件vs2010\projects\ngentest\bin\debug.我在VS2010命令提示符中使用此文件作为ngen命令参数,如下所示:

ngen "c:\documents\vs2010\projects\ngentest\bin\debug\ngentest.vshost.exe"
Run Code Online (Sandbox Code Playgroud)

但是当我这样做时,我无法接收PublicKeyToken,我无法在任何地方找到任何装配!如果我的程序集已创建,它在哪里?我怎么能找到它?我如何运行它(使用命令,或......!)来获取输出?

否则,当我从VS的Build菜单中使用build ngen构建我的项目时,会在提到的目录中创建一些文件,其中一个是ngentest.exe.

.net c# ngen visual-studio-2010 native-code

12
推荐指数
1
解决办法
2万
查看次数

与Native C++相比,C++/CLI性能如何?

早上好,

我正在编写一个拼写检查程序,对于这种情况,它是性能关键的.既然如此,由于我打算连接到数据库并使用C#创建GUI,我在C中编写了一个编辑距离计算例程,并编译为我在C#中使用的DLL DllImport.问题是,我认为(虽然我可能是错误的),其编组字一个一个从Stringchar *导致大量的开销.就是这样,我考虑使用C++/CLI以便我可以String直接使用.NET中的类型...我的问题是,C++/CLI性能如何与用于繁重数学计算和数组访问的本机C代码相比较?

非常感谢你.

c# performance c++-cli dllimport native-code

11
推荐指数
1
解决办法
3437
查看次数