![]() | 1 bigfei 2015-12-07 13:09:25 +08:00 nodejs 好了, eventemitter |
![]() | 3 k9982874 2015-12-07 13:11:29 +08:00 c/c++ 硬盘 IO 永远是最慢的,数据库有自己的 CACHE ,除非数据库 overload 。 数据可以存到 memcached ,写个其他服务或计划任务往数据库里插。如果怕丢失数据考虑消息队列。 |
![]() | 5 ansenlee OP |
![]() | 6 k9982874 2015-12-07 13:17:12 +08:00 看你的业务,中间层越多复杂度越高,越不靠谱,简单既是美。 |
7 mengzhuo 2015-12-07 13:18:39 +08:00 只有内存才可以 |
9 chinawrj 2015-12-07 13:28:55 +08:00 得有一个好的框架,不要保证的是多人之间的 ms 级别延时。你的写入操作应该也是抽象成一个“人”来对待,和其他人一样接收数据。只不过这个“人”是把数据保存。 |
![]() | 12 leveraging 2015-12-07 14:17:47 +08:00 其实和语言关系不大,你该说说具体的场景。多人写文件可是得加锁呀。数据库肯定已经考虑好了这个问题。 |
![]() | 13 shyling 2015-12-07 14:34:12 +08:00 我觉得毫秒级的或许 node 不是一个特别好的选择吧=。= |
![]() | 14 c4pt0r 2015-12-07 14:42:55 +08:00 显然是 go 啊.... |
15 cheng007 2015-12-07 14:47:22 +08:00 毫秒级啊, 你看一下面的数据,你觉着可能吗? Mac-mini:~ ng$ ping www.baidu.com PING www.a.shifen.com (14.215.177.37): 56 data bytes 64 bytes from 14.215.177.37: icmp_seq=0 ttl=57 time=6.383 ms 64 bytes from 14.215.177.37: icmp_seq=1 ttl=57 time=5.174 ms 64 bytes from 14.215.177.37: icmp_seq=2 ttl=57 time=5.423 ms 64 bytes from 14.215.177.37: icmp_seq=3 ttl=57 time=5.008 ms 64 bytes from 14.215.177.37: icmp_seq=4 ttl=57 time=6.042 m |
![]() | 19 lightening 2015-12-07 16:26:55 +08:00 Erlang? |
![]() | 20 9hills 2015-12-07 16:28:50 +08:00 任何一种语言都可以,直接写内存,然后定时 dump 到数据库 不要毫秒级去操作数据库。。。 |
![]() | 22 Mutoo 2015-12-07 17:16:02 +08:00 典型的网游服务器 |
23 mengzhuo 2015-12-07 17:55:35 +08:00 |
25 loqixh 2015-12-07 19:12:28 +08:00 ![]() GC 随便停顿都是 50ms 以上 |
![]() | 26 tennix 2015-12-07 19:52:43 +08:00 ![]() 不知道这种实时性能不能满足你的要求 http://www.phoenixframework.org/blog/phoenix-10-the-framework-for-the-modern-web-just-landed#the-real-time-web 这是里面的演示 demo ,反正第一次看到这种效果时我是震惊了 不知道 V 站还是不是自动显示油管 |
![]() | 29 Comdex 2015-12-07 22:19:16 +08:00 golang 挺合适的, 1.5 的 gc 已经比较好了 |
![]() | 30 adexbn 2015-12-08 07:54:51 +08:00 via iPhone ![]() 来说说我参与过的, 德意志银行外汇清算中心, C++/Oracle Nortel , C++/Timesten Blizzard 战网, C++/MM,Oracle 上海地铁清算中心, C++/Oracle 长三角高速公路联网清算中心, C++/Oracle ....... ....... |
![]() | 32 xiamingchong 2015-12-08 12:08:32 +08:00 golang 不谢 |
![]() | 33 libook 2015-12-08 12:10:14 +08:00 ![]() 其实用什么语言都好,因为毕竟现在什么都可以用硬件来堆,就看你看重哪一点了,如果想省钱就用高效的编译型语言,如果想开发简捷就用解释型 OO 语言。 实时的话就不要用 HTTP 协议啦,因为一条消息都要重新三次握手建立一个 TCP 连接超级慢,建议用类 Web Socket 技术。 据说 Meteor (后端 Node ,前端跨平台)可以简单快速地开发出实时同步的应用,之前看人演示过,简直就像黑科技。 直接写入文件和直接写入数据库应该速度差别不大,差别有可能在于读,因为数据库是可以检索的。 如果你用 Linux 服务器的话操作系统是会自动使用空闲内存做高速缓存的( free 命令中的 buff/cache 字段),内存大的话无论是写文件还是普通的硬盘数据库也能像内存数据库一样快速响应(在理论命中率高的情况下),如果数据量大用不起太多内存的话可以用 Redis 一类的内存硬盘两栖数据库,将部分数据放到内存里使用,自动同步到硬盘上。 最后在写逻辑的时候不要忘记要处理同时操作的情况,非原子操作可能会导致死锁或脏数据的产生。。。 |
![]() | 35 gkiwi 2015-12-08 14:15:16 +08:00 楼主参考这个下: 想实现一个多人同时协同画画的软件,有木有啥思路? https://cnodejs.org/topic/54e846168ff821b53f851860 你画我猜?如果是网页端,不晓得 websocket 合不合适,感觉性能各方面可能不是在后端,而是用户前端与后端的网络通信,这个速度不关后端语言的事情 |
![]() | 38 cloudzhy 2015-12-10 14:42:26 +08:00 毫秒级就不要用以太网 |
![]() | 39 macliu 2016-02-27 00:44:57 +08:00 用野狗可以很快解决 ( : wilddog.com |