节省“代码范围分析器”所使用的磁盘空间

请参阅

Visual FoxPro 为每行运行的代码生成一行代码范围记录。这些记录可能会很大。甚至在不到 10 分钟的时间内,内部日志的大小便会达到几兆。相应的代码范围引擎工作表也可能会很大;它们可能比原日志文件大好几倍。

如果在“代码范围分析器”运行过程中,遇到了“磁盘空间不足”的错误,可以通过更改某些引擎工作表字段的长度,以缩小这些表的大小。

因为需要包含长的路径名和长的对象和方法程序名,这些字段的默认长度被设为 115。建议不要使用大于 115 的值,因为有可能要在组合关键字中使用这两个字段,而组合关键字要求任意两个字段长度的和都不得超过最大的关键字长度 (240)。

除非能够确保包含完整路径的源文件名不会超长,否则请不要减少 Hostfile 字段的长度。否则,当引擎试图查找这些文件的未编译版本时可能会产生错误。

如果已知嵌套的页框和表格等容器类有数层深,或者要使用非常长的类名,则指定的 ObjClass 或 Executing 字段的长度应大于字段中所要容纳的最大字符串的长度再加上一些富余,以防止出错。可以先检查一下源和目标文件,以了解引擎是如何使用这些字段的。

在减少了 ObjClass 或 Executing 字段的长度之后,应注意代码范围和分析统计信息中的意外错误。如果字段中的对象或方法程序名称被截短了,即使在分析日志时,分析器并没有产生明确的错误,也将发生统计错误。

通常通过修改 iLenHostfile、iLenObjClass 和 iLenExecuting 属性的值来改变这些字段的长度。在“代码范围分析器”运行期间还可以动态地更改这些属性的值,特别是在打开一个大得异乎寻常的代码范围日志之前。

重要内容 在打开一个日志之后,如果尚未完成对该日志的分析,请不要更改这些属性的值,否则在标记了新的目标项的代码后,可能会出现统计错误。

但是如果在头文件 COV_TUNE.H 中将常量 COV_TOPSPEED 的值设置为“真”(.T.),从而使引擎进行行内调用以提高速度,则引擎将使用也同样定义在文件 COV_TUNE.H 中的常量,而不是这些属性的值来确定这些字段的大小。(当引擎分析代码行时,这些值是重复使用的,以确保准确地进行比较。)因此如果将 COV_TOPSPEED 设置为“真”(.T.),就必须直接在文件 COV_TUNE.H 中设置这些常量的值。