File: bug26029

package info (click to toggle)
oce 0.18.3-2
  • links: PTS, VCS
  • area: main
  • in suites: bookworm
  • size: 301,548 kB
  • sloc: cpp: 1,190,609; ansic: 67,225; sh: 11,630; tcl: 7,954; cs: 5,221; python: 2,867; java: 1,522; makefile: 342; xml: 292; perl: 37
file content (59 lines) | stat: -rw-r--r-- 1,813 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
puts "============"
puts "0026029: Visualization - Poor performance of connected objects"
puts "============"
puts ""
###########################################################
# Time spent on computation of large number of connected objects
# should grow linearly with the number of objects
###########################################################

pload MODELING VISUALIZATION
psphere s 0.5
tclean  s
incmesh s 0.1
trinfo  s

vinit View1
vclear
vaxo
#vcaps -vbo 0
vsetdispmode 1
vdefaults -defl 1.0 -autoTriang off
vdisplay s

# disable output of commands
decho off

set aNb1 100

# display 100x100 connected instances of single presentation
puts "Creating [expr $aNb1*$aNb1] instances..."
set t [time {for {set i 0} {$i < $aNb1} {incr i} {for {set j 0} {$j < $aNb1} {incr j} {vconnectto s_${i}_${j} ${i} ${j} 0 s -noupdate}}}]
set d1 [lindex $t 0]
puts "Done in $d1 microseconds!\n"
vclear

set aNb2 200

# display 200x200 connected instances of single presentation
puts "Creating [expr $aNb2*$aNb2] instances..."
set t [time {for {set i 0} {$i < $aNb2} {incr i} {for {set j 0} {$j < $aNb2} {incr j} {vconnectto s_${i}_${j} ${i} ${j} 0 s -noupdate}}}]
set d2 [lindex $t 0]
puts "Done in $d2 microseconds!\n"
vclear

# compare two CPU times: the ratio should be quasi-linear
set expected_ratio [expr double($aNb2 * $aNb2) / double($aNb1 * $aNb1)]
set actual_ratio [expr double($d2) / double($d1)]
puts "Comparing CPU time for the two test cases..."
puts "============================================="
puts "Expected ratio: $expected_ratio"
puts "Actual ratio:   $actual_ratio"
puts "============================================="

# Allow 50% deviation from linear growth
if {[expr $actual_ratio / $expected_ratio] > 1.5} {
  puts "Error: non-linear time growth detected!"
} else {
  puts "Test passed!"
}