Java 多线程 Socket 性能 一个java 程序,通过socket连接50个机器,有50个受信处理线程,50台机器每10ms发送给java程序一个消息,然后java程序保存到数据库。想问 用java开发是否能满足性能。有啥缺点?java 这样实现,比c语言效率差多少? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 java完全可以满足需求,我们的java程序单机有上万的QPS,使用的是Netty网络框架。但是如果你要把性能发展的极致,不要在处理网络连接的线程中操作数据库,你可以把需要保存的数据放到队列中,然后由专门负责处理数据库的线程来处理。c语言肯定比java效率高,但是如果你业务逻辑不复杂的话,瓶颈不是在语言上,是在网络层,和数据库层,和这些比语言的性能差距忽略不计。 我们公司一台服务器, 一个java写的采集程序 一个端口可以接 40000个TCP长连接请求, 我们一台服务器最多安装 20个端口, 也就是接入 100万TCP长连接请求, 一个长连接一个终端设备. 所以楼主说的不存在任何问题.就是我随意写个程序, 也能接入几千个终端.着急是你代码中的处理效率, 与java性能关系不大(在这个以内存不限的年代, C的性能并不一定比得过java) 提示, 我们用java写的程序最多的接入过一个省的设备: 1800万台, 用了10台一体机服务器, 每台是 300多G内存. 目前正在运行. 就象一楼说明, 开发语言根本没有性能问题, 有性能问题的是自己代码的质量, 写数据库的速度, 数据库的性能才是最大的问题! 关键业务都是慢能数据库. 我们采取的办法是: 1800万能设备的数据, 收到之后解释成明文, 直接存储在 txt文件里, 每个文件最大5M, 最多5万条记录, 缓存最长2分钟.也就是说: >5M 保存文件, 后面的写新文件>5万行, 保存文件, 后面的写新文件> 2分钟, 保存文件, 后面的写新文件写文件的速度才是最快的保存数据方式, 而且多线程可以多文件, 不冲突, 就看你硬盘速度多快了!!然后用专用的文件处理工具, 把文件一行行入库, 这样采集程序就不会受好数据库的限制, 最大的发挥处理速度. 这点小任务量都不是事,并且还有成熟的框架支持,比如Mina---------------------PS:如果觉得我的分享不错,欢迎大家随手点赞~我有一个微信公众号,经常会分享一些Java技术相关的干货;如果你喜欢我的分享,可以用微信搜索“Java知己”关注。发送“1024”可以领取30本经典开发书籍,与10万程序员一起进步。 Swing高手关注!使用SwingUtilities.invokeLater java 如何调用一个输入密码的对话框 今天去面视-一道题!! static域被继承的后,子类和父类一起执行,这块代码只被执行一次。为什么? 关于File问题。 java能否得到当前操作系统的安装主目录(不用JNI技术) 用applet可以实现从服务器上下载文件到客户端,而不出现保存对话框么 关于树的代码问题 高分送你。帮助解决一下好吗。数据库连接的问题 继承的内存分配问题 卡在这了,一直运行不了,到底哪里出现问题了,老铁们支支招呗? jdk安装问题
我们公司一台服务器, 一个java写的采集程序 一个端口可以接 40000个TCP长连接请求,
我们一台服务器最多安装 20个端口, 也就是接入 100万TCP长连接请求, 一个长连接一个终端设备. 所以楼主说的不存在任何问题.
就是我随意写个程序, 也能接入几千个终端.
着急是你代码中的处理效率, 与java性能关系不大(在这个以内存不限的年代, C的性能并不一定比得过java)
我们采取的办法是: 1800万能设备的数据, 收到之后解释成明文, 直接存储在 txt文件里, 每个文件最大5M, 最多5万条记录, 缓存最长2分钟.
也就是说: >5M 保存文件, 后面的写新文件
>5万行, 保存文件, 后面的写新文件
> 2分钟, 保存文件, 后面的写新文件写文件的速度才是最快的保存数据方式, 而且多线程可以多文件, 不冲突, 就看你硬盘速度多快了!!
然后用专用的文件处理工具, 把文件一行行入库, 这样采集程序就不会受好数据库的限制, 最大的发挥处理速度.
我有一个微信公众号,经常会分享一些Java技术相关的干货;如果你喜欢我的分享,可以用微信搜索“Java知己”关注。发送“1024”可以领取30本经典开发书籍,与10万程序员一起进步。