|
|
导航: |
论坛 -> DELPHI技术
斑竹:liumazi,sephil |
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/1 17:26:48 |
标题: |
IdTcpServer的CPU占用高是不是BUG啊 |
浏览:1663 |
|
加入我的收藏 |
楼主: |
几乎没写什么代码,默认的IdTcpServer控件一拖, procedure TServerDataModule.DataModuleCreate(Sender: TObject); begin IdTCPServer.Active := False; IdTCPServer.DefaultPort := 18280; IdTCPServer.Active := True; end;
procedure TServerDataModule.IdTCPServerExecute(AContext: TIdContext); begin Exit; end; 多简单,啥也没干,别人一连上来程序占用,CPU马上升到近37%。客户端就几秒发个心跳而已。
以前也用这个啊,怎么没发现呢?
----------------------------------------------
- |
作者: |
|
2020/7/1 19:21:48 |
1楼: |
心跳包几秒发一次?
----------------------------------------------
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 1:04:57 |
2楼: |
一个厂家的硬件就这样,本来说是心跳发了收到回包就会等段时间再发,事实是不管收不收到回包都几秒发一次,时间长了那个硬件还假死,假死了不就再发心跳了,但按道理收不到回包应该故障灯就亮,它也不亮。可见他们硬件本身就是有问题的。应该是BDQN生产的消防系统。他们同一个硬件还有的就是发不出心跳包和状态包,他们自己生产的配置客户端配置也没有任何反应,一定要在硬件的键盘上配。还出现了不发心跳但有时我会收到其它状态包。异常情况非常多。所以我才查我的软件的。用TCP调试工具代替我的服务端,事实是收不到他们有些设备的包的。 结果发现我的程序也有CPU占用高的问题。明天用TCP调试工具试下,代替他们设备试下CPU占用高不高
----------------------------------------------
-
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 1:20:29 |
3楼: |
用TCP调试工具建了个服务收包,说是布了十几个设备,结果就七个能收到包,调试工具是没回包的,结果发现连上来的设备每个的发包表现都不一样,有的连上来收不到回包就一直发,有的连上来一个都不发,有的收不到回包就重建新连接再发,结果有的一台设备同时建了好多连接,我都被惊呆了。
----------------------------------------------
-
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 1:35:02 |
4楼: |
我测了一下,新建了一个项目,窗口放IdTcpServer,设好端口,Active=true; 用调试工具一连,虚拟机上CPU直接到百分之五十几,没理由啊,我为啥没早发现? 难道是版本问题,我用的版本是10.3.2的啊,也不是什么老版本。
----------------------------------------------
-
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 2:13:50 |
5楼: |
唉~~~把程序放了10.4下试了一下,问题没了,看来是我以前装的那个版本有问题
----------------------------------------------
-
|
作者: |
|
2020/7/2 2:45:00 |
6楼: |
那你原先装的是哪个版本呢?一共试了几个版本?到那个版本症状消失的?
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 3:50:27 |
7楼: |
没搞好,原来我试10.4的时候没连上TCP所以CPU没占用,一连上CPU还是暴增
----------------------------------------------
-
|
作者: |
hs_kill (lzl_17948876) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 7:51:32 |
8楼: |
换个server呗 干嘛非要indy的东西 serversocket/ICS 那么多选择了
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 8:10:48 |
9楼: |
8楼你说得是不错啊,但这句话想想都像我问英语中有个语法感觉用起来不对,你说换日语吧,有点这感觉:)
----------------------------------------------
-
|
作者: |
|
2020/7/2 9:11:47 |
10楼: |
先抓包看一下
----------------------------------------------
-
|
作者: |
hs_kill (lzl_17948876) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 11:48:00 |
11楼: |
就是你用一个山寨电脑各种蓝屏报错, 然后去查系统和软件问题, 而不是换一个正常的机器
----------------------------------------------
http://www.cnblogs.com/lzl_17948876/
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 12:21:46 |
12楼: |
我问题解决了,说一下。这完全是我记性差导致的问题。 很久以前我就用idtcpserver了,以前做的项目也没问题,也不是说没有碰到这个开销问题,以前做的时候知道建个循环,再测下收到没,收到了处理,没收到sle ep一下之类的。这次做得比较复杂,就没抄代码而是重做了,sle ep之前加了判断跳出了。结果sle ep没执行到。关键是代码一看上去没问题,就忘了这里有个循环加sle ep的事了,重测时也对这本身就是个循环一点印象都没了。结果测了近二十个小时,查了一堆资料。记性差、概念不深刻,这种事不是第一次犯了。 ps: sle ep是关键字你们能信码?l连着发就发不上来。
----------------------------------------------
-
|
作者: |
|
2020/7/2 12:32:30 |
13楼: |
sleep
----------------------------------------------
(C)(P)Flying Wang
|
作者: |
tiez (骑牛夜旅) |
★☆☆☆☆ |
-
|
普通会员 |
|
2020/7/2 12:39:33 |
13楼: |
关键我发现问题的时候还试了别的通讯控件比如TTcpserver之类的,这些都是要自建循环的,我越测越忘了这个是自带循环。前面不能直接跳出。
----------------------------------------------
-
|
作者: |
|
2020/7/2 12:40:00 |
14楼: |
丢,这代价太高了,哈哈
----------------------------------------------
-
|
作者: |
|
2020/7/2 17:01:39 |
15楼: |
没事写个博客呗,可以克服记性差的问题,而且利人利己
----------------------------------------------
只有偏执狂才能生存!
|
作者: |
|
2020/7/9 16:47:36 |
16楼: |
以前碰到过的问题并且找到解决办法的,后来忘记了,再次碰到,再次掉坑里,再次花时间然后重新找到解决办法。类似的事情很多啊。解决这种事情的办法就是写博客。
----------------------------------------------
-
|
作者: |
bjlg (蓝天) |
★☆☆☆☆ |
-
|
盒子活跃会员 |
|
2020/7/9 17:14:12 |
17楼: |
所以不要先怀疑别人的,首先看看是不是自己的问题
----------------------------------------------
http://delphi.icm.edu.pl/ftp/http://delphi-z.ru
|
作者: |
|
2020/7/10 18:42:15 |
18楼: |
搞delphi的都上了年纪,写博客是好习惯,我现在凡是解决的技术问题都写博客。
----------------------------------------------
-
|
作者: |
|
2020/7/10 18:45:52 |
19楼: |
第一时间搜索自己的博客 然后才是其他引擎。。 我的博客只有我自己能看懂。。。。。。。。。。
----------------------------------------------
[alias] co = clone --recurse-submodules up = submodule update --init --recursiveupd = pullinfo = statusrest = reset --hard懒鬼提速https://www.cctry.com/>http://qalculate.github.io/downloads.htmlhttps://www.cctry.com/
|
作者: |
|
2020/7/16 10:34:39 |
20楼: |
死循环我也没有看出来,听楼主说自带循环才慢慢想起来是怎么回事.
唉,真是记忆力差了.
----------------------------------------------
我和我追逐的梦,擦肩而过
|
|