Board logo

Subject: [讨论]关于Delphi的一些问题 [Print This Page]

Author: jAmEs_    Time: 2007-8-29 16:31     Subject: [讨论]关于Delphi的一些问题

1.
大家有没有比较大规模的用过indy的TCP相关组件(如FTP),我觉得它的使用并不稳定,如循环的取FTP(同一个)文件,到一定数量客户端就死锁了,然后CPU占用很高,由于是随机的,很难跟踪哪里问题。效率低些可以改进,稳定性不好那可是第一大问题啊!不知道大家有没有什么改良方法?或者推荐更好的组件(Delphi似乎很少。。。)?ICS也是个不错的组件,不过它是异步通信的,编程相对不方便。

2.
有时F7调试很方便,但是也有个缺陷,如,像system.pas这种可以说非常稳定的程序,我们一般没有必要进去查看它的调试情况,但是为了调试组件代码,我们有时又要进去,这时很常会跳进system.pas进行调试,很不爽,印象调试效率和心情。不知道有没有办法既调试VCL源码,又不进去部分源码处?而且进去system.pas后你发现源码的位置都对应不上的。。。,BCB也一样,那个AnsiString定义的类,说实在,有什么必要调试啊?但是它老进去,否则你没办法进去你想要的地方。
Author: zzzl    Time: 2007-8-29 22:14

indy这个东西沽名钓誉,早就该扔了。我现在也和你一样,发现的太迟了
Author: jAmEs_    Time: 2007-8-29 23:46

我想我们应该考虑怎么改进,或者说找出问题怎么产生的,即使未必能解决,也要避免,而不是埋怨哦
今天才知道ICS是可以同步调用的,以前别人用的例子都是异步的,竟然没有深究,哎。。。
Author: zjy    Time: 2007-8-30 10:05

1、indy是典型的学院派作品,ftp客户端控件很久以前就发现有大量问题,兼容性、稳定性和性能都很差。可以试试synapse,这个是实践派作品,简洁易用。

2、可以试试用安装目录下 Lib\System.dcu 替换掉 Lib\Debug 下的同名文件。在我的机器上是可以解决这个问题的,改完后最好重打开一下工程或者重启ide。
Author: bahamut8348    Time: 2007-8-30 10:37

貌似SYSTEM.PAS用F7是跟踪不进去的吧(BCB不清楚,但是D6和D7是不行的)
Author: Passion    Time: 2007-8-30 13:24

跟踪不跟踪进去貌似根据的是此单元是否是debug形的单元以及源码是否找得到吧?
Author: jAmEs_    Time: 2007-8-30 17:22



QUOTE:
原帖由 zjy 于 2007-8-30 10:05 发表
1、indy是典型的学院派作品,ftp客户端控件很久以前就发现有大量问题,兼容性、稳定性和性能都很差。可以试试synapse,这个是实践派作品,简洁易用。

2、可以试试用安装目录下 Lib\System.dcu 替换掉 Lib\Debug 下的同名文 ...

1.那indy問題主要來自哪里呢?阻塞?還是防阻塞處理不好?

2.我試過了,不過當時我沒有重啟IDE,不行,不知道是不是這樣原因造成不行。
Author: jAmEs_    Time: 2007-8-30 17:23



QUOTE:
原帖由 bahamut8348 于 2007-8-30 10:37 发表
貌似SYSTEM.PAS用F7是跟踪不进去的吧(BCB不清楚,但是D6和D7是不行的)

工程屬性設置了【Use Debug DCUs】就可以進去了!
Author: jAmEs_    Time: 2007-8-30 17:28



QUOTE:
原帖由 zjy 于 2007-8-30 10:05 发表
1、indy是典型的学院派作品,ftp客户端控件很久以前就发现有大量问题,兼容性、稳定性和性能都很差。可以试试synapse,这个是实践派作品,简洁易用。

2、可以试试用安装目录下 Lib\System.dcu 替换掉 Lib\Debug 下的同名文 ...

再補充:
1.我以前網上找到的資料怎么都說它好,沒有說它不好啊~哎,7456
2.BCB那個怎么樣呢?遇到AnsiString構造時,老是進去dstring.h,不知道有沒有辦法解決?
Author: jAmEs_    Time: 2007-8-30 17:34

在Delphi第二關問題解決了,的確重開工程可以了。
Author: niaoge    Time: 2007-8-30 22:00

因为找不到其它的控件,或者又怕用了别的控件三两年没得技术支持,没得更新,
所以我只能一直硬着头皮用indy,  indy全,大的方向抓得还可以,不过如上面所说bug很多,可以毫不夸张地说用到哪里改到哪里,甚至有些函数或过程需要重写,
如zjy所说,indy确实不属于实践,问题也大部分出在应用这一块,
比如说indy 的 email解码,大的方向确实对的,也很简练,但只能解英文的码,中英文混合或是双字节解不了
也许写的人根本就没到不同的机器上调试过
可能indy plus会不错,该改的地方改了,但是要money,不像咱cw,cw就是cw,没有cw plus
Author: jAmEs_    Time: 2007-8-30 22:37

indy plus的與indy不一樣的?而且下載了安裝源碼都有啊?
其他組件都無所謂,如果TCP和FTP穩定我覺得就足夠了。
Author: niaoge    Time: 2007-8-30 23:50



QUOTE:
原帖由 jAmEs_ 于 2007-8-30 22:37 发表
indy plus的與indy不一樣的?而且下載了安裝源碼都有啊?
其他組件都無所謂,如果TCP和FTP穩定我覺得就足夠了。

没有买过,不知道是否这些bug 已改好了,
记得2003 delphi最佳插件,indy plus(注:不是indy)是通信类的第一名,
虽然没有买过,但我想,商业控件,既然卖钱,总不能把不能用的东东拿来卖吧

[ 本帖最后由 niaoge 于 2007-8-30 23:52 编辑 ]
Author: zzzl    Time: 2007-8-31 09:37

晕,有那个精力改indy,不如换个控件算了
Author: gz_runwe    Time: 2007-8-31 17:07     Subject: indy不好用,又庞大,又晦涩


Author: jAmEs_    Time: 2007-9-4 10:52

其实我想讨论究竟什么原因引起indy不稳定哦,大家能否给点实在些的意见,呵呵
如:
是TCP阻塞不稳定还是indy因为处理界面问题导致不稳定?(因为我即使不让画面动,还是不稳定)
理想状态下,阻塞和非阻塞会不会不稳定?
Author: shenloqi    Time: 2007-9-4 17:18

Indy有不少组件做的有些粗糙,其中FTP和HTTP服务器都很粗糙的,Indy的机制的确不能应付大型的网络请求,但是对付一般的情况是没有问题的。Indy自己有一个AntiFreezen组件,可以防止界面死锁的。你可以用Adplus在你的程序死锁,CPU占100%的时候做一个Dump,然后用Windbg来看堆栈和其他信息,判断问题出在哪里。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0