希望为Linux\BSD编写SNMP和Netflow工具,并寻求关于语言选择的建议,C或Java。
该工具将收集Netflow,发送和接收SNMP查询,连接到Postgresql数据库,并将前面的web接口(PHP),在未来它将与使用web服务的设备接口。
通常情况下,我会使用C实现上述功能,大量健壮的库和对网络堆栈的低级访问,但数据库访问和web服务可以更容易地实现(更好?)在Java中。
问题是,Java是否能胜任处理所有这些负载下的网络信息的任务,还是应该坚持使用C提供的低级访问权限?
补充问题,我一直在考虑让它成为一个混合应用程序。C中的繁重任务和Java中的更高级别的东西。欢迎在这方面的经验和想法。
发布于 2009-11-29 12:09:18
今天的Java实现是健壮和成熟的,所以您担心它们是否“能够处理……在负载下”是不必要的。C有它的优点(最小的内存占用,最快的启动时间),但是你要为它们付出昂贵的代价,因为你需要做自己的内存管理所需的编程工作。从你所说的看来,最小化内存或优化频繁重启对这款应用来说并不是什么大问题。为什么不从Java (或您最熟悉的任何其他高级语言)开始,只考虑用C、或重新编写某些部分,如果您的分析显示由于使用高级语言而出现CPU-或内存-瓶颈?(我敢打赌,你很可能最终不需要这样的重新编码,顺便说一下)。
发布于 2009-11-29 12:19:10
在这一点上,我绝对会选择Java。它完全有能力处理“负载”。我在Java项目中工作,这些项目负责实时处理非常大量的数据,并且没有问题。
Java不会为你在这里谈论的事情而苦苦挣扎,它将更容易和更快地进行开发。
发布于 2009-11-29 12:28:20
每个人都知道这一点;现代的JVM实现在速度上与C语言相同,除非您正在进行直接的硬件访问。
我很好奇为什么你会考虑用Java后端作为PHP的前端。C/PHP是有意义的,但是如果你打算在后端使用Java,为了更容易维护,使用相同的语言可能会有所帮助。
https://stackoverflow.com/questions/1814612
复制相似问题