Java的替代方案

Java的替代方案,java,oop,garbage-collection,Java,Oop,Garbage Collection,我需要Java的替代品,因为我正在从事一个遗传学计算项目。 它占用大量内存和大部分cpu时间。因此,当我将其部署到服务器上时,它将不起作用,因为许多人同时使用该程序 是否有人知道另一种不在虚拟机中运行且类似于Java的语言(面向对象,使用异常和类型安全) 致以最良好的祝愿 乔纳森> < p>你可以试试C++,它满足你的所有要求。 你可以试试C++,它满足你的所有要求。 如果你不喜欢C++,你可以考虑D、ObjvEC或谷歌的新GO语言。< /P> < P>如果你不喜欢C++,你可以考虑D,Obj

我需要Java的替代品,因为我正在从事一个遗传学计算项目。 它占用大量内存和大部分cpu时间。因此,当我将其部署到服务器上时,它将不起作用,因为许多人同时使用该程序

是否有人知道另一种不在虚拟机中运行且类似于Java的语言(面向对象,使用异常和类型安全)

致以最良好的祝愿


<>乔纳森>

< p>你可以试试C++,它满足你的所有要求。

你可以试试C++,它满足你的所有要求。

如果你不喜欢C++,你可以考虑D、ObjvEC或谷歌的新GO语言。< /P> < P>如果你不喜欢C++,你可以考虑D,ObjectiveC或谷歌的新Go语言。

回答一个直接的问题:有几十种语言可以满足您的明确需求。AmmoQ列出了一些;还有很多

我想你会对每一个都感到失望

不管Java憎恨者希望您怎么想,Java的性能与任何其他编译语言都没有太大区别。仅仅改变语言并不能大大提高性能

你可能会做得更好,得到一个剖析器,看看你使用的算法


祝你好运

直接回答这个问题:有几十种语言可以满足您的明确需求。AmmoQ列出了一些;还有很多

我想你会对每一个都感到失望

不管Java憎恨者希望您怎么想,Java的性能与任何其他编译语言都没有太大区别。仅仅改变语言并不能大大提高性能

你可能会做得更好,得到一个剖析器,看看你使用的算法


祝你好运

将Python与numpy、scipy和matplotlib软件包一起使用。numpy是一个Python包,它的所有数字处理代码都是用C实现的。因此运行时性能(Python虚拟机的bcoz)不会成为问题


如果您只想要编译的、静态类型的语言,请查看Haskell

将Python与numpy、scipy和matplotlib软件包一起使用。numpy是一个Python包,它的所有数字处理代码都是用C实现的。因此运行时性能(Python虚拟机的bcoz)不会成为问题


如果您只想要编译的、静态类型的语言,请查看Haskell

嗯。。我想你在找C

C#是面向对象的,对泛型有很好的支持。您可以使用它编写WinForm和服务器端应用程序

您可以在此处阅读有关C#泛型的更多信息:

编辑:
我的错误,遗传学,不是泛型。这并没有改变C将完成这项工作的事实,使用泛型将显著降低负载。

很好。。我想你在找C

C#是面向对象的,对泛型有很好的支持。您可以使用它编写WinForm和服务器端应用程序

您可以在此处阅读有关C#泛型的更多信息:

编辑: 我的错误,遗传学,不是泛型。它不会改变C将完成这项工作的事实,使用泛型将显著降低负载。

F#或ruby,或python,它们非常适合计算和许多其他方面
NASA使用python,或者ruby,或者python,它们非常适合计算和其他许多东西

NASA使用python

如果你的应用程序在单用户工作站上消耗了大部分CPU和内存,我怀疑将其翻译成非虚拟机语言会有多大帮助。在Java中,您需要依赖虚拟机进行内存管理;您必须用非VM语言重新实现它们的等价物。而且,Java的内存管理非常好。您的应用程序可能不是实时敏感的,因此让它偶尔暂停一次并不是问题。此外,您将在多用户系统上运行此功能,对吗

内存使用将更多地与您的底层数据结构和算法有关,而不是语言的神奇之处。除非您为您选择的语言准备了一个非常好的内存分配器库,否则您可能会发现,由于程序中的错误,您使用的内存也会一样多(如果不是更多的话)

由于您的应用程序是计算密集型的,因此其他一些语言不太可能使其不那么复杂,除非您在整个代码中插入一些战略性的sleep()调用,以故意使其更频繁地使用CPU。这会减慢速度,但对其他用户会更好


尝试使用Java的-server选项运行应用程序。这将使用为长时间运行的程序设计的VM,并包括将Java编译为本机代码的JIT。它可能会使您的程序运行得更快一些,但仍然会受到CPU和内存的限制。

如果您的应用程序在单用户工作站上消耗了大部分CPU和内存,我怀疑将其翻译成一些非虚拟机语言会有多大帮助。在Java中,您需要依赖虚拟机进行内存管理;您必须用非VM语言重新实现它们的等价物。而且,Java的内存管理非常好。您的应用程序可能不是实时敏感的,因此让它偶尔暂停一次并不是问题。此外,您将在多用户系统上运行此功能,对吗

内存使用将更多地与您的底层数据结构和算法有关,而不是语言的神奇之处。除非您为您选择的语言准备了一个非常好的内存分配器库,否则您可能会发现,由于程序中的错误,您使用的内存也会一样多(如果不是更多的话)

由于您的应用程序是计算密集型的,因此其他一些语言不太可能使其不那么复杂,除非您在整个代码中插入一些战略性的sleep()调用,以故意使其更频繁地使用CPU。这会减慢速度,但对其他用户会更好

试着运行你的ap