java吧 关注:1,252,294贴子:12,737,189

写socket测试,发现即使udp的send函数一秒钟才只能

只看楼主收藏回复

写socket测试,发现即使udp的send函数一秒钟才只能执行几十万次,就这么个龟速,是怎么负载的大服务器那么高的吞吐的?
有什么办法提速么?测了下好像不管数据多少速度都差不多。


IP属地:江苏来自Android客户端1楼2023-08-09 16:24回复
    软件依靠硬件的
    你要不在古董电脑上面试试看有没有几十万次。?


    IP属地:湖南来自Android客户端2楼2023-08-10 14:26
    收起回复
      又测了下,tcp传输多开一个客户端速度直接快了10倍,上限1gb多,但再开一个客户端反而只有2倍了,应该是操作系统的软件限制。
      udp与线程无关,只和调用次数挂钩,和数据量基本无关100mbps和10gbs都是差不多的次数,怀疑也是系统限制。


      IP属地:江苏来自Android客户端3楼2023-08-11 10:45
      回复


        IP属地:江苏来自Android客户端4楼2023-08-11 10:46
        回复
          上代码


          IP属地:山东来自Android客户端5楼2023-08-11 16:03
          回复
            udp代码试了非阻塞的方法,速度一样,毕竟udp本来就不阻塞。


            IP属地:江苏来自Android客户端7楼2023-08-11 17:10
            收起回复
              你这还不到上限,http缓冲池都还没用完,等你用完了不能新建http连接了 再来看数据


              IP属地:四川来自Android客户端8楼2023-08-11 17:31
              收起回复
                单pc 单数据库 每秒也就几千量级吧 socket几十万足够了


                IP属地:美国来自iPhone客户端10楼2023-08-11 23:02
                收起回复
                  单核的处理能力在3到5个g左右,四个核就能完全满足万兆的处理需求。


                  来自Android客户端11楼2023-08-12 07:22
                  回复
                    你这是异步send还是非异步啊,我写c加加的,socket可以设置阻塞和非阻塞模式,阻塞模式就很慢,java我就不清楚了


                    IP属地:湖南来自Android客户端12楼2023-08-12 08:40
                    收起回复
                      一秒钟几十万也不低了吧


                      IP属地:广东来自Android客户端13楼2023-08-12 09:16
                      收起回复
                        还有io多路复用


                        IP属地:上海来自Android客户端14楼2023-08-12 12:14
                        回复
                          x86的atomic你可以认为也是阻塞的


                          IP属地:山东来自Android客户端16楼2023-08-12 13:08
                          回复
                            我不太懂啊,请问这个是什么意思,主要影响什么呢,应该不是接口的访问量吧


                            IP属地:北京来自iPhone客户端17楼2023-08-12 15:13
                            回复
                              应届生看不懂你们说的正常吗


                              IP属地:澳大利亚来自Android客户端18楼2023-08-12 15:18
                              回复