| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 5431 人关注过本帖
标题:我要哭了,好好的程序为什么还是越用越慢?请高手再次帮助我分析原因。
只看楼主 加入收藏
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
你的程序并不大,也没有多少全局变量。局部变量一般不用设置,用后退出程序段,局部变量会自行释放。如果环境设置正常的话,你的程序不会发生因为变量导致内存不足。我的感觉,执行你的主程序后,由于内存不能释放,导致一系列怪现象。
2010-03-17 12:35
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
回复 101楼 panpende


你一说,我也觉得了。因为编译好执行,用了主程序。在退出我的程序后,并没有象有的文章所说要恢复什么环境的,还有释放什么的?然后,我有时又进入我的软件再执行。

还有我在编程序时,有时也会执行主程序,看看运行效果。

所以感觉,是不是主程序有问题,没有释放什么的?还有没有恢复什么的?



那你能不能改一下我的主程序。谢谢。

或者,把你们用的主程序给我,我只要改一下。

[ 本帖最后由 YZCZWCB 于 2010-3-17 14:00 编辑 ]
2010-03-17 13:55
panpende
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:4
帖 子:528
专家分:963
注 册:2009-4-27
收藏
得分:0 
我的主程序设置很简单,程序中也没有类似

RELEASE maxbh, Cgbh,Cgxh,maxxxh,Ccgzbh,Xznd,Zbnd,Maxnd,szbh,tmpa,lsc,Cgdw,Cgrq,Cgfr,Cghm,Zbnd
SYS(1104)&&清理程序和数据使用的内存缓存,并清除和刷新打开表的缓存。

的语句,因为局部变量一般不用设置,用后退出程序段,局部变量会自行释放。

例如
SET TALK OFF
SET SAFETY OFF
SET CENTURY ON
SET EXACT ON
SET DATE YMD
CLEAR ALL
CLOSE DATABASES
SET SYSMENU OFF
CD D:\TZ
ON SHUTDOWN DO Z10
PUBLIC TM,TP,TZ1
DO FORM TZ1.SCX
READ EVENTS
CLOSE DATABASES
CLEAR ALL
QUIT
RETURN

PROCEDURE Z10 &&退出
CLOSE DATABASES
ERASE L*
ERASE *.CDX
ERASE ALL
QUIT
RETURN


程序文件,表单,报表之类全部在一个文件夹,例如D:\TZ,数据表放在子目录,例如D:\TZ\WJ1、D:\TZ\WJ1,打开表,用 USE WJ1\表A,诸如此类。因此也不处处设置

SET DEFAULT TO sys(5)+curdir()  && 系统路径设置
SET PATH TO data,forms,help,icons,menus,progs,activex

仅供参考。
此外,有时在空白处,看看没有字符,实际上无意中有不显现的内容,FOXPRO在执行中,会感觉这样的内容,造成不可预料的结果。我好几次遇到过这样的问题,删除空白,问题就解决了。




2010-03-17 15:04
cnfarer
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:179
帖 子:3330
专家分:21157
注 册:2010-1-19
收藏
得分:0 
你的退出部分好像有点问题,我编译后,招待可执行文件时,用左边菜单中的退出时,总是出错。另外我感觉稳定性不是很好。可惜我没时间分析你数据库和源码。

★★★★★为人民服务★★★★★
2010-03-17 15:04
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
回复 103楼 panpende
谢谢。

原先我也没有在每个事件中写一些清除变量语句。

这还不是花屏搞的我有病乱投医嘛。总以为减少内存的存在,不至于出现的花屏。

另外,在我的COMBO中,如要在数据库中生成只有“采购单位”的临时表,一般在INIT中生成就行,但这个临时表在这个模块一直存在,为了释放这个内存表,减少内存的使用,我后来就改用了TEXT的和COMB的组成,在COMB的离开事件中关闭临时表,真的累死我了。

我在想,如果内存表不是出现花屏的主要原因,我还要恢复用一个COMB就行,这样程序更简洁。


另外,你提醒我的空白行的问题,晚上我再搜一下,删除所有空白行,防止出现不知名的问题

[ 本帖最后由 YZCZWCB 于 2010-3-17 16:30 编辑 ]
2010-03-17 16:29
YZCZWCB
Rank: 1
等 级:新手上路
帖 子:191
专家分:5
注 册:2010-1-9
收藏
得分:0 
回复 104楼 cnfarer
这个是没编好,我一般点退出按钮退出系统的。


晚上我回去把他完善好。谢谢啦


我请求,各位老师结合的软件特点,给我写一个主程序。


要求:1、单机版
      2、路径要适应不同的安装盘。不要指定D:\ E:\...什么的
      3、我还想是分我的表单文件、数据表文件....等各个文件夹形式,我觉得所有的文件放在一起不好。
      4、在程序退出后,要能自动清理内存等等必须的专业性的操作

另外,我这个程序是否可以改成网络版的,呵呵,别笑我,我是初学者...
2010-03-17 16:37
茵梦湖
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:31
帖 子:545
专家分:2180
注 册:2009-4-25
收藏
得分:0 
以下是引用YZCZWCB在2010-3-17 09:26:09的发言:


6、关于面向对象的图片。
  主表单中,在 INIT中,我已改为thisform.image1.Picture='PICTURE\ZFCGDT.JPG' 。原先直接在Picture的下拉框中选择的,导致有D:\....PICTURE\ZFCGDT.JPG

我测试了一下, 好像可以不用改, 可直接定位的~~~这方面我不懂, 你自己不妨也测试一下~~~

2010-03-17 22:59
zhuyunshen
Rank: 6Rank: 6
等 级:侠之大者
威 望:2
帖 子:212
专家分:455
注 册:2009-11-22
收藏
得分:0 
可以不用改
2010-03-18 08:01
hu9jj
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:红土地
等 级:贵宾
威 望:400
帖 子:11857
专家分:43421
注 册:2006-5-13
收藏
得分:0 
下面是我的一个在用的主程序,可以供楼主参考:

close DATABASE
Close All
CLEAR ALL

SET SYSMENU OFF                                &&关闭系统菜单
SET DELETE ON                                  &&打开删除标志
SET EXACT OFF                                  &&打开模糊比较
SET DEFAULT TO SYS(5)+SYS(2003)                &&设置默认的驱动器或文件夹
SET ECHO OFF                                   &&关闭调试程序跟踪窗口
SET TALK OFF                                   &&不显示命令结果
SET CONFIRM OFF                                &&指定不可以用在文本框中键入最后字符的方式来退出文本框
SET SAFETY OFF                                 &&关闭改写文件预先提示
SET CENTURY ON                                 &&显示日期的世纪部分
SET DATE TO YMD                                &&按年/月/日的方式显示日期
SET HOURS TO 24                                &&设置按24小时计时
SET HELP ON                                    &&打开帮助
*SET HELP TO qshelp.chm                         &&指定帮助文件
ON SHUTDOWN DO qstc                            &&当点击主窗口关闭按钮时执行退出过程
SET COLLATE TO "PINYIN"                        &&设置当前排序方式为拼音方式

public (全局变量)

ZOOM Windows Screen Max                       &&最大化屏幕
_SCREEN.caption = "XXXXX"                     &&指定窗口标题
OPEN DATABASE data\bbsj                       &&当前目录下data目录下的bbsj数据库

DO mainmenu.mpr                               &&运行主菜单

READ EVENTS

活到老,学到老!http://www.(该域名已经被ISP盗卖了)E-mail:hu-jj@
2010-03-18 09:01
快速回复:我要哭了,好好的程序为什么还是越用越慢?请高手再次帮助我分析原因。 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.019010 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved