主题:[讨论] VFP中的全局变量最大承受能力是多少?
北京种子乐
[专家分:3710] 发布于 2008-05-28 04:10:00
____本人为了编程方便,为每个表格建立了一个对应的设置表,表中注明了表格中各列名称、宽度、字段名、字段类型等11列信息,系统运行初又将这些表制成了全局变变量的数组,再用数组去设置表格。
软件开发之初只有几个表格时感觉很好,随着软件越编越大,这种设置表越来越多,这种全局变量数组也就越来越多,刚才我数了一下,是65个,按稍大一点的每个表按50个记录记录计算,那就是:65*50*11=35750,也就是说仅这一项系统中就有35750个全局变量了,其它方面也使用了很多全局变量,因为本人编软件向来就有使用全局变量的习惯。
06年07年本人就发帖讨论过全局变量的使用问题,有几位高师均表示全局变量使用过多,危害极大,建议不用或少用,自从那时起本人对使用全局变量有所收敛。
现在的问题是VFP对全局变量究竟有多大的承受能力,如果VFP的全局变量资源很多,不充分运用那就是资源的浪费,如果超出了VFP的全局变量承受能力,系统运行就会出问题。
讲回到主题上,我现在是想把上面提到的那些为设置表格而生成的全局变量数组去掉,直接用设置表去设置表格,但这项改造工程量很大,难度也很大,还会给软件造成一个时期的不稳定。那么这种改造是不是值得?是不是有必要?敬请各位高师指点,在下这边有礼了。
最后更新于:2008-05-28 06:02:00
回复列表 (共37个回复)
11 楼
北京种子乐 [专家分:3710] 发布于 2008-05-31 12:59:00
啊!
你少用还“超过2000个”,
我多用才1000个左右呀。
[em18][em22][em46][em8][em28]
12 楼
北京种子乐 [专家分:3710] 发布于 2008-05-31 13:06:00
乌鸦弟你好:
我近日可能去南宁,还能有时间到一起喝点小酒吗?
13 楼
jinlonggao [专家分:17130] 发布于 2008-06-01 15:08:00
老种子,您好!
没想到你又把老问题拿出来重提了,乌雅的回答让您感到欣慰,因为与他相比您还差得远,如果给他判无期,您还只能算个拘役。
不过,您即然用VFP编程,就该知道VFP的编程工具是面向对象的,而对象的封装性思想与您的全局变量是相背的。
“如果VFP的全局变量资源很多,不充分运用那就是资源的浪费”
这句话可能不对,我不想细说根由,VFP所支持的全局变量个数,是它的能力,而不是资源,所以,也谈不上浪费。
14 楼
0901chang [专家分:10660] 发布于 2008-06-01 15:34:00
在大型工程中,需要分工和协作,所以封装的对象必须能够独立运行。而老种子是自己一个人做,是否单独封装对象并不重要,习惯用全局变量来传递参数的编程方法,可以不改变。
若种子当了大老板,顾一帮人来做软件,就必须要按老高的方法做,否则将寸步难行。
甬车兄,这么说你应该放心了吧。
15 楼
北京种子乐 [专家分:3710] 发布于 2008-06-01 19:54:00
[quote]功能 容量
默认的内存变量数目 16,384
内存变量的最大数目 65,000
数组的最大数目 65,000
每个数组中元素的最大数目 一般: 2G 字节、成员数组: 2G 字节、对象成员数组: 65,000
[/quote]
VFP为什么要预设那么多全局变量?百思不得其解。
16 楼
wzxc [专家分:9440] 发布于 2008-06-01 22:43:00
[em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35][em35]
17 楼
cbl518 [专家分:57140] 发布于 2008-06-02 07:01:00
[quote]VFP为什么要预设那么多全局变量?百思不得其解。[/quote]
VFP 允许使用的变量数,并不是已经预设那么多全局变量。
VFP 允许使用的变量数,包含了,局部变量和全局变量,对象变量。
当不使用表单对象编程时,使用的变量数量就会多了!
18 楼
北京种子乐 [专家分:3710] 发布于 2008-06-02 08:01:00
变量和数组
功能 容量
默认的内存变量数目 16,384
内存变量的最大数目 65,000
数组的最大数目 65,000
每个数组中元素的最大数目 一般: 2G 字节
成员数组: 2G 字节
对象成员数组: 65,000
CBL518老弟你好:
上面是5楼参数表中的参数,和你说的15楼的参数相同,看不出其中包含“对象变量”。
你说的那些关于内存变量的技术指标是变量的总和到是有道理的,也就是说那些变量可以都用作局部变量,也可以都用作全局变量,还可以混用,应该是吧?
19 楼
北京种子乐 [专家分:3710] 发布于 2008-06-04 07:04:00
如果每一个数组元素算一个全局变量的话,我的软件中用了五万到十万个全局变量。
如果不用这些全局变量,就觉得软件无法编写。
看来各人编写软件的手法差异真是太大了。
看来我是不是实在有点太笨了?
20 楼
0901chang [专家分:10660] 发布于 2008-06-04 08:34:00
乌鸦经常说,很多情况下,笨办法是最好的办法。
乌鸦的编程方法,很多都比你笨,现在甚至不会用系统提供的缓冲功能,为了同步修改数据,现在连缓冲都自己写:把编辑的记录存到自己建立的中间表,修改数据时去修改主表。这种方法,所有的程序员都会笑掉大牙的,但乌鸦不是程序员,只是业余玩的,无所谓了。关键问题是在这种方法中,我能非常熟练地解决实时业务共享的问题,不同的业务实时共享并修改相同的信息项目是非常复杂的。
我来回复