一、怎样最大限度的提高Domino下Web应用的速度(公式篇)
1、最好用@ClienType代替@UserRoles(4.6 or higher),用于隐藏条件时。
2、在使用@DbColumn和@DbLookup时,用列数代替域名,因为Domino在计算时,会去比较域名,而用列数就会快得多。
3、在使用@DbColumn、@DbCommand和@DbLookup时,尽可能的用"Cache",因为它比no-Cache要快。
4、尽量在少量数据的隐藏视图中执行查找公式。在列值中用单个字符串或把数据放在同一列中可以减少试图的数据量。
5、建立搜索视图时把有用的值合并在同一列中,这样可提高多值域的搜索速度。
6、返回值用临时变量,避免出现多余的搜索。在你的公式中有时会用到多次搜索的结果,所以就应该用临时变量代替返回值。
7、用LotusScript的GetView,Search和FTSearch的方法代替公式,这样可以至少提高15%的速度。
二、怎样最大限度的提高Domino下Web应用的速度(LotusScript篇)
1、用For 循环代替Do 循环,因为Do循环会反复的计算条件!
2、在数族元素中循环式用Forall代替for。一元数组会快75%,二元会快50%左右。
3、简化If里的条件,如:if a=x and b=y就没有 if a=x then if b=y快,应为后者的第二个条件在第一个条件为真时才计算的。
4、用Search和FTSearch方法代替GetView的方法。
5、尽量避免混用数据类型进行计算,如,避免用single+long这样会降低40%的速度。
6、用doc.ColumnValues属性比其他获得文档值要快(如:doc.fieldname)。
7、在除法时,用"/"代替"/",用"/"得到浮点数,用"/"得到整数。
8、避免使用Variant类型的数据,因为Variant包含太多的类型和数据。
9、避免使用过多的数组, 去掉不必要的数组。
10、尽量少的使用Redim,定义数组前尽可能的定义范围。
11、避免使用拷贝和增加,如:x$=x$+"a",是很费时的。
12、在n维数组循环时,最后的维数应该在最外层循环。如:A[x,y],应该是y在外层循环。
13、比较时用数字代替字符。如:if (Asc(x$) = Asc("A"))代替if (Left$(x$,1) = "A")。
14、用GetNextDocument方法代替GetNThDocument方法。
15、用NotesDatabase类型的Search的方法代替NotesView的GetAllDocumentsByKey的方法。