1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-04-02 17:46:22 +03:00

0027691: Remove dchrono from all test cases and move its to perf group

Remove performance comparing with hardcoded value.
Test cases for performance of some commands were moved to perf group.

Updated documentation.
This commit is contained in:
ski 2017-01-19 16:31:17 +03:00 committed by apn
parent 810b672ff3
commit 44fae8b193
165 changed files with 1267 additions and 2770 deletions

View File

@ -715,11 +715,24 @@ Possible options are:
* 1 -- outputs only differences;
* 2 -- additionally outputs the list of logs and directories present in one of directories only;
* 3 -- (by default) additionally outputs progress messages;
* <i>-image [filename]</i> - compare images and save the resulting log in specified file (<i>$dir1/diffimage-$dir2.log</i> by default)
* <i>-cpu [filename]</i> - compare overall CPU and save the resulting log in specified file (<i>$dir1/diffcpu-$dir2.log</i> by default)
* <i>-memory [filename]</i> - compare memory delta and save the resulting log in specified file (<i>$dir1/diffmemory-$dir2.log</i> by default)
* <i>-highlight_percent \<value\></i> - highlight considerable (>value in %) deviations of CPU and memory (default value is 5%)
Example:
~~~~~
Draw[]> testdiff results-CR12345-2012-10-10T08:00 results-master-2012-10-09T21:20
Draw[]> testdiff results/CR12345-2012-10-10T08:00 results/master-2012-10-09T21:20
~~~~~
Particular tests can generate additional data that need to be compared by *testdiff* command.
For that, for each parameter to be controlled, the test should produce the line containing keyword "COUNTER* followed by arbitrary name of the parameter, then colon and numeric value of the parameter.
Example of test code:
~~~~~
puts "COUNTER Memory heap usage at step 5: [meminfo h]"
~~~~~
@section testmanual_5 APPENDIX

View File

@ -610,7 +610,7 @@ wait
Syntax:
~~~~~
chrono [ name start/stop/reset/show]
chrono [ name start/stop/reset/show/restart/[counter text]]
~~~~~
Without arguments, **chrono** activates Draw chronometers. The elapsed time ,cpu system and cpu user times for each command will be printed.
@ -619,7 +619,9 @@ With arguments, **chrono** is used to manage activated chronometers. You can per
* run the chronometer (start).
* stop the chronometer (stop).
* reset the chronometer to 0 (reset).
* restart the chronometer (restart).
* display the current time (show).
* display the current time with specified text (output example - *COUNTER text: N*), command <i>testdiff</i> will compare such outputs between two test runs (counter).
**Example:**
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~{.cpp}

View File

@ -100,20 +100,49 @@ static Standard_Integer chronom(Draw_Interpretor& di,
C->Timer().Reset();
}
else {
if (!strcasecmp(a[2],"reset"))
C->Timer().Reset();
if (!strcasecmp(a[2],"start"))
C->Timer().Start();
if (!strcasecmp(a[2],"stop"))
C->Timer().Stop();
if (!strcasecmp(a[2],"show"))
C->Timer().Show();
for (Standard_Integer anIter = 2; anIter < n; ++anIter)
{
TCollection_AsciiString anArg (a[anIter]);
anArg.LowerCase();
if (anArg == "reset")
{
C->Timer().Reset();
}
else if (anArg == "restart")
{
C->Timer().Restart();
}
else if (anArg == "start")
{
C->Timer().Start();
}
else if (anArg == "stop")
{
C->Timer().Stop();
}
else if (anArg == "show")
{
C->Timer().Show();
}
else if (anArg == "counter")
{
Standard_Real aSeconds,aCPUtime;
Standard_Integer aMinutes, aHours;
C->Timer().Show(aSeconds,aMinutes,aHours,aCPUtime);
std::cout << "COUNTER " << a[++anIter] << ": " << aCPUtime << "\n";
}
else
{
std::cerr << "Unknown argument '" << a[anIter] << "'!\n";
}
}
}
}
return 0;
}
static Standard_Integer dchronom(Draw_Interpretor& I,
static Standard_Integer dchronom(Draw_Interpretor& theDI,
Standard_Integer n,const char** a)
{
if ((n == 1) || (*a[1] == '0') || (*a[1] == '1')) {
@ -122,8 +151,8 @@ static Standard_Integer dchronom(Draw_Interpretor& I,
else
Draw_Chrono = (*a[1] == '1');
if (Draw_Chrono) I << "Chronometers activated.\n";
else I << "Chronometers desactivated.\n";
if (Draw_Chrono) theDI << "Chronometers activated.\n";
else theDI << "Chronometers desactivated.\n";
}
else {
Handle(Draw_Drawable3D) D = Draw::Get(a[1]);
@ -133,22 +162,50 @@ static Standard_Integer dchronom(Draw_Interpretor& I,
}
if (C.IsNull()) {
C = new Draw_Chronometer();
Draw::Set(a[1],C,Standard_False);
Draw::Set(a[1],C,Standard_False);
}
if (n <= 2) {
C->Timer().Reset();
}
else {
if (!strcasecmp(a[2],"reset"))
C->Timer().Reset();
if (!strcasecmp(a[2],"start"))
C->Timer().Start();
if (!strcasecmp(a[2],"stop"))
C->Timer().Stop();
if (!strcasecmp(a[2],"show")) {
Standard_SStream ss;
C->Timer().Show(ss);
I << ss;
for (Standard_Integer anIter = 2; anIter < n; ++anIter)
{
TCollection_AsciiString anArg (a[anIter]);
anArg.LowerCase();
if (anArg == "reset")
{
C->Timer().Reset();
}
else if (anArg == "restart")
{
C->Timer().Restart();
}
else if (anArg == "start")
{
C->Timer().Start();
}
else if (anArg == "stop")
{
C->Timer().Stop();
}
else if (anArg == "show")
{
Standard_SStream ss;
C->Timer().Show(ss);
theDI << ss;
}
else if (anArg == "counter")
{
Standard_Real aSeconds,aCPUtime;
Standard_Integer aMinutes, aHours;
C->Timer().Show(aSeconds,aMinutes,aHours,aCPUtime);
theDI << "COUNTER " << a[++anIter] << ": " << aCPUtime << "\n";
}
else
{
theDI << "Unknown argument '" << a[anIter] << "'!\n";
}
}
}
}

View File

@ -1876,6 +1876,50 @@ proc _diff_show_ratio {value1 value2} {
return "$value1 / $value2 \[[format "%+5.2f%%" [expr 100 * ($value1 - $value2) / double($value2)]]\]"
}
# procedure to check cpu user time
proc _check_time {regexp_msg} {
upvar log log
upvar log1 log1
upvar log2 log2
upvar log_cpu log_cpu
upvar cpu cpu
upvar basename basename
upvar casename casename
set time1_list [dict create]
set time2_list [dict create]
set cpu_find UNDEFINED
foreach line1 [split $log1 "\n"] {
if { [regexp "${regexp_msg}" $line1 dump chronometer_name cpu_find] } {
dict set time1_list "${chronometer_name}" "${cpu_find}"
}
}
foreach line2 [split $log2 "\n"] {
if { [regexp "${regexp_msg}" $line2 dump chronometer_name cpu_find] } {
dict set time2_list "${chronometer_name}" "${cpu_find}"
}
}
if { [llength [dict keys $time1_list]] != [llength [dict keys $time2_list]] } {
puts "Error: number of dchrono/chrono COUNTER are different in the same test cases"
} else {
foreach key [dict keys $time1_list] {
set time1 [dict get $time1_list $key]
set time2 [dict get $time2_list $key]
# compare CPU user time with 10% precision (but not less 0.5 sec)
if { [expr abs ($time1 - $time2) > 0.5 + 0.05 * abs ($time1 + $time2)] } {
if {$cpu != false} {
_log_and_puts log_cpu "COUNTER $key: [split $basename /] $casename: [_diff_show_ratio $time1 $time2]"
} else {
_log_and_puts log "COUNTER $key: [split $basename /] $casename: [_diff_show_ratio $time1 $time2]"
}
}
}
}
}
# Procedure to compare results of two runs of test cases
proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _logimage _logcpu _logmemory {_statvar ""}} {
upvar $_logvar log
@ -1954,6 +1998,15 @@ proc _test_diff {dir1 dir2 basename image cpu memory status verbose _logvar _log
continue
}
}
if { ! $image } {
# check CPU user time in test cases
set checkCPURegexp "COUNTER (.+): (\[-0-9.+eE\]+)"
if { [regexp "${checkCPURegexp}" $log1] &&
[regexp "${checkCPURegexp}" $log2] } {
_check_time "${checkCPURegexp}"
}
}
# check CPU times
if {$cpu != false || ($image == false && $cpu == false && $memory == false)} {

View File

@ -199,6 +199,17 @@ void OSD_Chronometer::Reset ()
Cumul_user = Cumul_sys = 0.;
}
//=======================================================================
//function : Restart
//purpose :
//=======================================================================
void OSD_Chronometer::Restart ()
{
Stopped = Standard_True;
Start();
}
//=======================================================================
//function : Stop
//purpose :

View File

@ -54,7 +54,10 @@ public:
//! Stops and Reinitializes the Chronometer.
Standard_EXPORT virtual void Reset();
//! Restarts the Chronometer.
Standard_EXPORT virtual void Restart();
//! Stops the Chronometer.
Standard_EXPORT virtual void Stop();

View File

@ -125,6 +125,18 @@ void OSD_Timer::Reset ()
OSD_Chronometer::Reset();
}
//=======================================================================
//function : Restart
//purpose :
//=======================================================================
void OSD_Timer::Restart ()
{
TimeStart = GetWallClockTime();
TimeCumul = 0.;
OSD_Chronometer::Restart();
}
//=======================================================================
//function : Show
//purpose :

View File

@ -52,7 +52,10 @@ public:
//! Stops and reinitializes the timer with zero elapsed time.
Standard_EXPORT virtual void Reset() Standard_OVERRIDE;
//! Restarts the Timer.
Standard_EXPORT virtual void Restart() Standard_OVERRIDE;
//! Shows both the elapsed time and CPU time on the standard output
//! stream <cout>.The chronometer can be running (Lap Time) or
//! stopped.

View File

@ -1,34 +0,0 @@
puts "===== OCC1454 ====="
#######################################################################################
# Improve performance of TDF_Label::FindChild
#######################################################################################
puts "Info: Open the document with 80000 sublabels of the label 0:2"
dchrono h reset
dchrono h start
Open [locate_data_file OCC1726.cbf] D
dchrono h stop
set TimeList [dchrono h show]
regexp {Elapsed time: [-0-9.+eE]+ Hours ([-0-9.+eE]+) Minutes ([-0-9.+eE]+) Seconds} $TimeList full ElapsedTime_min ElapsedTime_sec
regexp {CPU user time: ([-0-9.+eE]+) seconds} $TimeList full CPUusertime
regexp {CPU system time: ([-0-9.+eE]+) seconds} $TimeList full CPUsystemtime
puts "ElapsedTime = ${ElapsedTime_min} min ${ElapsedTime_sec} sec CPUusertime = ${CPUusertime} CPUsystemtime = ${CPUsystemtime}"
if { ${ElapsedTime_sec} > 20.0 || ${ElapsedTime_min} != 0 } {
puts "Elapsed time is more then 20.0 seconds - Faulty"
puts "Faulty OCC1454"
} elseif { ${CPUusertime} > 12 } {
puts "CPUusertime is more then 12 seconds - Faulty"
puts "Faulty OCC1454"
} elseif { ${CPUsystemtime} > 0.6 } {
puts "CPUsystemtime is more then 0.6 seconds"
puts "Faulty OCC1454"
} else {
puts "Elapsed time is less then 20 seconds - OK"
puts "CPU user time is less then 12 seconds - OK"
puts "CPU system time is less then 0.6 seconds - OK"
puts "OK for OCC1454"
}

View File

@ -1,34 +0,0 @@
puts "===== OCC1454 ====="
#######################################################################################
# Improve performance of TDF_Label::FindChild
#######################################################################################
puts "Info: Open the document with 80000 sublabels of the label 0:2"
dchrono h reset
dchrono h start
Open [locate_data_file OCC1726.std] D
dchrono h stop
set TimeList [dchrono h show]
regexp {Elapsed time: [-0-9.+eE]+ Hours ([-0-9.+eE]+) Minutes ([-0-9.+eE]+) Seconds} $TimeList full ElapsedTime_min ElapsedTime_sec
regexp {CPU user time: ([-0-9.+eE]+) seconds} $TimeList full CPUusertime
regexp {CPU system time: ([-0-9.+eE]+) seconds} $TimeList full CPUsystemtime
puts "ElapsedTime = ${ElapsedTime_min} min ${ElapsedTime_sec} sec CPUusertime = ${CPUusertime} CPUsystemtime = ${CPUsystemtime}"
if { ${ElapsedTime_sec} > 20.0 || ${ElapsedTime_min} != 0 } {
puts "Elapsed time is more then 20.0 seconds - Faulty"
puts "Faulty OCC1454"
} elseif { ${CPUusertime} > 12 } {
puts "CPUusertime is more then 12 seconds - Faulty"
puts "Faulty OCC1454"
} elseif { ${CPUsystemtime} > 0.6 } {
puts "CPUsystemtime is more then 0.6 seconds"
puts "Faulty OCC1454"
} else {
puts "Elapsed time is less then 20 seconds - OK"
puts "CPU user time is less then 12 seconds - OK"
puts "CPU system time is less then 0.6 seconds - OK"
puts "OK for OCC1454"
}

View File

@ -1,39 +0,0 @@
puts "================"
puts "OCC5023"
puts "================"
puts ""
######################################################
# Performance regression in opening OCAF file
######################################################
set aFile [locate_data_file OCC5023.cbf]
puts "Info: Restore the document"
if [info exists DD] {
catch {Close DD}; unset DD
}
dchrono h reset
dchrono h start
Open ${aFile} DD
dchrono h stop
set list [dchrono h show]
Close DD
regexp {CPU user time: +([-0-9.+eE]+)} $list full CPU_user_time
set Good_CPU_user_time 2.
set CPU_user_time_percent [expr (${CPU_user_time} - ${Good_CPU_user_time}) / ${Good_CPU_user_time} * 100.]
set percent_max 0.1
puts "CPU_user_time = ${CPU_user_time}"
puts "Good_CPU_user_time = ${Good_CPU_user_time}"
puts "CPU_user_time_percent = ${CPU_user_time_percent}"
if {${CPU_user_time_percent} > ${percent_max}} {
puts "Faulty OCC5023 : CPU user time is wrong"
}

View File

@ -1,39 +0,0 @@
puts "================"
puts "OCC5023"
puts "================"
puts ""
######################################################
# Performance regression in opening OCAF file
######################################################
set aFile [locate_data_file OCC5023.std]
puts "Info: Restore the document"
if [info exists DD] {
catch {Close DD}; unset DD
}
dchrono h reset
dchrono h start
Open ${aFile} DD
dchrono h stop
set list [dchrono h show]
Close DD
regexp {CPU user time: +([-0-9.+eE]+)} $list full CPU_user_time
set Good_CPU_user_time 2.
set CPU_user_time_percent [expr (${CPU_user_time} - ${Good_CPU_user_time}) / ${Good_CPU_user_time} * 100.]
set percent_max 0.1
puts "CPU_user_time = ${CPU_user_time}"
puts "Good_CPU_user_time = ${Good_CPU_user_time}"
puts "CPU_user_time_percent = ${CPU_user_time_percent}"
if {${CPU_user_time_percent} > ${percent_max}} {
puts "Faulty OCC5023 : CPU user time is wrong"
}

View File

@ -1,48 +0,0 @@
puts "========"
puts "OCC25514"
puts "========"
puts ""
#########################################################################################
# TKernel, OSD_Timer - do not accumulate error in timer within queries in running state
#########################################################################################
# Set number of cycle iteration
set IterationCount 10000
set iCounter 1
# Set rank of timer's value
set TimeRank 2
# Start timers
dchrono bug_info_1 reset
dchrono bug_info_2 reset
dchrono bug_info_1 start
dchrono bug_info_2 start
# Operation cycle (show only one timer state)
while {$iCounter != $IterationCount} {
dchrono bug_info_1 show
set iCounter [expr {$iCounter + 1}]
}
# Stop timers
dchrono bug_info_1 stop
dchrono bug_info_2 stop
# Get timers value
set Timer_1 [dchrono bug_info_1 show]
set Timer_2 [dchrono bug_info_2 show]
# Modify timers value for comparison
set TimerValue_1 [lindex $Timer_1 6]
set TimerValue_1 [string range $TimerValue_1 0 [expr {[string first "." $TimerValue_1] + $TimeRank}]]
set TimerValue_2 [lindex $Timer_2 6]
set TimerValue_2 [string range $TimerValue_2 0 [expr {[string first "." $TimerValue_2] + $TimeRank}]]
# Comparison of timer's values
puts "Compare: [lindex $Timer_1 6] vs [lindex $Timer_2 6]"
if {$TimerValue_1 != $TimerValue_2} {
puts "ERROR: OCC25514 is reproduced."
} else {
puts "OK"
}

View File

@ -1,65 +0,0 @@
puts "============"
puts "OCC24596"
puts "============"
puts ""
###############################
## Slow import of IGES data
###############################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
cpulimit 8500
if { [regexp {Windows} [dversion]] } {
set max_time 3000
set max_time2 2300
} else {
set max_time 5500
set max_time2 4000
}
} else {
cpulimit 2600
if { [regexp {Windows} [dversion]] } {
set max_time 1100
set max_time2 700
} else {
set max_time 1600
set max_time2 1000
}
}
# 1 - igesread
dchrono h reset
dchrono h start
igesread [locate_data_file 100B_Nosecone_with_Triangular_FSS.igs] a 43479
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time of igesread is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time of igesread is less than ${max_time} seconds - OK"
}
# 2 - checkshape
dchrono h2 reset
dchrono h2 start
checkshape a_1
dchrono h2 stop
set q2 [dchrono h2 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q2 full z2
puts "$z2"
if { $z2 > ${max_time2} } {
puts "Elapsed time of checkshape is more than ${max_time2} seconds - Faulty"
} else {
puts "Elapsed time of checkshape is less than ${max_time2} seconds - OK"
}

View File

@ -1,65 +0,0 @@
puts "============"
puts "OCC24596"
puts "============"
puts ""
###############################
## Slow import of IGES data
###############################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
cpulimit 8500
if { [regexp {Windows} [dversion]] } {
set max_time 3000
set max_time2 2300
} else {
set max_time 5500
set max_time2 4000
}
} else {
cpulimit 2600
if { [regexp {Windows} [dversion]] } {
set max_time 1100
set max_time2 700
} else {
set max_time 1600
set max_time2 1000
}
}
# 1 - igesread
dchrono h reset
dchrono h start
igesread [locate_data_file 100B_Nosecone_with_Triangular_FSS.igs] b 86884
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
# 2 - checkshape
dchrono h2 reset
dchrono h2 start
checkshape b_1
dchrono h2 stop
set q2 [dchrono h2 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q2 full z2
puts "$z2"
if { $z2 > ${max_time2} } {
puts "Elapsed time of checkshape is more than ${max_time2} seconds - Faulty"
} else {
puts "Elapsed time of checkshape is less than ${max_time2} seconds - OK"
}

View File

@ -1,30 +0,0 @@
puts "=========="
puts "OCC24022"
puts "=========="
puts ""
#####################################
# Slow meshing in BRepMesh
#####################################
restore [locate_data_file bug24022_hung_mesh.brep] result
tclean result
dchrono h reset
dchrono h start
incmesh result 0.1
dchrono h stop
set info [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $info full cpu_time
if { $cpu_time > 3. } {
puts "Error : meshing is slow"
} else {
puts "OK: meshing is quite fast"
}
vinit
vdisplay result
vfit
vsetdispmode 1
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -1,47 +0,0 @@
puts "=========="
puts "OCC24968"
puts "=========="
puts ""
#####################################
# Impove BRepMesh_Classifier to cope with intersection of huge number of wires
#####################################
cpulimit 2500
restore [locate_data_file bug24968_Shape_1.brep] result
tclean result
dchrono h reset
dchrono h start
incmesh result 0.1
dchrono h stop
set info [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} ${info} full cpu_time
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 2500
} else {
set max_time 2500
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 100
} else {
set max_time 250
}
}
if { ${cpu_time} > ${max_time} } {
puts "Error : meshing is slow"
} else {
puts "OK: meshing is quite fast"
}
vinit
vdisplay result
vfit
vsetdispmode 1
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -1,47 +0,0 @@
puts "=========="
puts "OCC24968"
puts "=========="
puts ""
#####################################
# Impove BRepMesh_Classifier to cope with intersection of huge number of wires
#####################################
cpulimit 2500
restore [locate_data_file bug24968_Shape_1.brep] result
tclean result
dchrono h reset
dchrono h start
incmesh result 0.1 -parallel
dchrono h stop
set info [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} ${info} full cpu_time
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 2500
} else {
set max_time 2500
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 100
} else {
set max_time 250
}
}
if { ${cpu_time} > ${max_time} } {
puts "Error : meshing is slow"
} else {
puts "OK: meshing is quite fast"
}
vinit
vdisplay result
vfit
vsetdispmode 1
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -1,70 +0,0 @@
puts "============"
puts "OCC19793"
puts "============"
puts ""
#######################################################################
# Fuse problem of symetrical shapes. Appendix for NPAL19789
#######################################################################
cpulimit 2500
set BugNumber OCC19793
puts "Load first shape ..."
restore [locate_data_file bug19793_new_shape.brep] b1
puts "Load second shape ..."
restore [locate_data_file bug19793_shape.brep] b2
puts "Prepare boolean operation ..."
dchrono perf_h reset
dchrono perf_h start
bop b1 b2
dchrono perf_h stop
puts "Start boolean operation ..."
bopsection result
puts "Finish boolean operation ..."
checkprops result -l 17730.1
checkshape result
checksection result
checknbshapes result -vertex 68 -edge 70 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 139
# OCC23753 processing
# Performance verification of bop operation
set chrono_info [dchrono perf_h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $chrono_info full CPU_time
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
puts "Checking WINDOWS performance..."
if {$CPU_time > 1000.} {
puts "ERROR: OCC23753 is reproduced."
puts " Low performance: $CPU_time"
}
} else {
puts "Checking LINUX performance..."
if {$CPU_time > 2500.} {
puts "ERROR: OCC23753 is reproduced."
puts " Low performance: $CPU_time"
}
}
} else {
if { [regexp {Windows} [dversion]] } {
puts "Checking WINDOWS performance..."
# Initial CPU_time is 92-94 seconds for Windows
if {$CPU_time > 300.} {
puts "ERROR: OCC23753 is reproduced."
puts " Low performance: $CPU_time"
}
} else {
puts "Checking LINUX performance..."
# Initial CPU_time is 287-289 seconds for Linux
if {$CPU_time > 350.} {
puts "ERROR: OCC23753 is reproduced."
puts " Low performance: $CPU_time"
}
}
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,31 +0,0 @@
puts "========"
puts "OCC452"
puts "(case 1)"
puts "========"
puts ""
pcone pc 10 0 20
explode pc f
prism pcy pc_2 0 0 10
dchrono h2 reset
dchrono h2 start
bcut result pc pcy
dchrono h2 stop
set q2 [ dchrono h2 show ]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q2 full z2
puts "$z2"
if { $z2 > 3 } {
puts "Elapsed time is more then 3 seconds - Faulty"
} else {
puts "Elapsed time is less then 3 seconds - OK"
}
checkprops result -s 254.16
checkshape result
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,40 +0,0 @@
puts "TODO ?OCC25918 Windows: Error : The area of result shape is"
puts "TODO OCC24156 MacOS: Tcl Exception:"
puts "TODO OCC24156 MacOS: TEST INCOMPLETE"
puts "========"
puts "OCC453"
puts "(case 2)"
puts "========"
puts ""
dchrono h2 reset
dchrono h2 start
set make_print_out 0
dset SCALE 1000.
dset SCALE1 5
tolblend 0.01 1e-04 1e-05 1e-03
restore [locate_data_file shading_137.brep] s
tscale s 0 0 0 SCALE1
explode s E
blend result s 4.5*SCALE1 s_2 4.5*SCALE1 s_1 4.5*SCALE1 s_6 4.5*SCALE1 s_8 4.5*SCALE1 s_10 4.5*SCALE1 s_14 4.5*SCALE1 s_4 4.5*SCALE1 s_5 4.5*SCALE1 s_16 4.5*SCALE1 s_11 4.5*SCALE1 s_19 4.5*SCALE1 s_13
explode result So
tcopy result_1 result
dchrono h2 stop
set q2 [ dchrono h2 show ]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q2 full z2
puts "$z2"
if { $z2 > 110 } {
puts "Elapsed time is more then 110 seconds - Faulty"
} else {
puts "Elapsed time is less then 110 seconds - OK"
}
checkprops result -s 3.65777e+06
checkshape result
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,34 +0,0 @@
puts "============"
puts "OCC23906"
puts "============"
puts ""
###############################
## Performance of the projection algorithm in some cases became lower after integration of the fix for the bug 0022610
###############################
restore [locate_data_file bug23906_f.brep] f
point p 3.5527136788005e-015 100 100
dchrono h reset
dchrono h start
projponf f p -min -t
dchrono h stop
set q2 [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q2 full z
puts "$z"
if { [checkplatform -windows] } {
puts "OS = Windows NT"
set max_time 0.5
} else {
puts "OS = Linux"
set max_time 0.1
}
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}

View File

@ -1,55 +0,0 @@
puts "========="
puts "OCC24696"
puts "========="
puts ""
###########################################################
# Lower performance of the new Edge/Edge intersection algorithm
###########################################################
pload QAcommands
dchrono h reset
dchrono h start
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 100.0
} else {
set max_time 200.0
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 25.0
} else {
set max_time 40.0
}
}
if { [regexp {Mac OS X} [dversion]] } {
set max_time 100.0
}
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,59 +0,0 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 250
} else {
set max_time 290
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 65
} else {
set max_time 100
}
}
if { [regexp {Mac OS X} [dversion]] } {
set max_time 320
}
dchrono h reset
dchrono h start
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 0 0 1 45
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,59 +0,0 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 300
} else {
set max_time 400
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 100
} else {
set max_time 120
}
}
if { [regexp {Mac OS X} [dversion]] } {
set max_time 440
}
dchrono h reset
dchrono h start
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 0 1 1 45
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,59 +0,0 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 500
} else {
set max_time 500
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 130
} else {
set max_time 160
}
}
if { [regexp {Mac OS X} [dversion]] } {
set max_time 260
}
dchrono h reset
dchrono h start
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 1 1 1 45
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,59 +0,0 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 550
} else {
set max_time 550
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 130
} else {
set max_time 150
}
}
if { [regexp {Mac OS X} [dversion]] } {
set max_time 260
}
dchrono h reset
dchrono h start
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 0 1 1 90
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,59 +0,0 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 300
} else {
set max_time 500
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 100
} else {
set max_time 150
}
}
if { [regexp {Mac OS X} [dversion]] } {
set max_time 270
}
dchrono h reset
dchrono h start
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 1 1 1 90
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -1,60 +0,0 @@
puts "============"
puts "OCC25019"
puts "============"
puts ""
###############################
## Command "bsection" in Test Harness with flag build pcurve on second shape works slowly.
###############################
restore [locate_data_file bug25019_a_shape_1.brep] a1
restore [locate_data_file bug25019_prism.brep] p1
# 1.
dchrono h1 reset
dchrono h1 start
bsection r a1 p1 -n2d2
dchrono h1 stop
set q1 [dchrono h1 show]
# 2.
dchrono h2 reset
dchrono h2 start
bsection r a1 p1
dchrono h2 stop
set q2 [dchrono h2 show]
#
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q1 full t1
puts "$t1"
if { [checkplatform -windows] } {
puts "OS = Windows NT"
set max_time1 20
} else {
puts "OS = Linux"
set max_time1 30
}
if { $t1 > ${max_time1} } {
puts "Elapsed time is more than ${max_time1} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time1} seconds - OK"
}
#
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q2 full t2
puts "$t2"
if { [checkplatform -windows] } {
puts "OS = Windows NT"
set max_time2 20
} else {
puts "OS = Linux"
set max_time2 30
}
if { $t2 > ${max_time2} } {
puts "Elapsed time is more than ${max_time2} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time2} seconds - OK"
}

View File

@ -1,45 +0,0 @@
puts "============"
puts "OCC25058"
puts "============"
puts ""
###############################
## Regression of performance of BRepExtrema_ExtCC (1000 times slower)
###############################
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 1
set max_time2 1
} else {
set max_time 1
set max_time2 1
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 1
set max_time2 1
} else {
set max_time 1
set max_time2 1
}
}
restore [locate_data_file bug25058_e1.brep] e1
restore [locate_data_file bug25058_e2.brep] e2
dchrono h reset
dchrono h start
distmini r e1 e2
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time of distmini is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time of distmini is less than ${max_time} seconds - OK"
}

View File

@ -1,63 +0,0 @@
puts "========"
puts "OCC25413"
puts "========"
puts ""
#############################################################
# Line-Shape intersection algorithm became 400 times slower
#############################################################
pload QAcommands
restore [locate_data_file bug25413.brep] w
dchrono perf_h reset
dchrono perf_h start
OCC25413 w
dchrono perf_h stop
set chrono_info [dchrono perf_h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $chrono_info full CPU_time
puts "Elapsed time is: $CPU_time"
if { [checkplatform -windows] } {
if {[regexp {Debug mode} [dversion]]} {
# initial CPU_time for WINDOWS in DEBUG mode is 90 sec
puts "Checking WINDOWS performance in debug mode..."
if {$CPU_time > 90.} {
puts "ERROR: OCC25413 is reproduced."
puts " Low performance: $CPU_time (but should be less than 90 sec)"
} else {
puts "Done!"
}
} else {
puts "Checking WINDOWS performance in optimize mode..."
# initial CPU_time for WINDOWS in OPTIMIZE mode is 30 sec
if {$CPU_time > 30.} {
puts "ERROR: OCC25413 is reproduced."
puts " Low performance: $CPU_time (but should be less than 30 sec)"
} else {
puts "Done!"
}
}
} else {
if {[regexp {Debug mode} [dversion]]} {
# initial CPU_time for LINUX in DEBUG mode is 90 sec
puts "Checking LINUX performance in debug mode..."
if {$CPU_time > 90.} {
puts "ERROR: OCC25413 is reproduced."
puts " Low performance: $CPU_time (but should be less than 90 sec)"
} else {
puts "Done!"
}
} else {
puts "Checking LINUX performance in optimize mode..."
# initial CPU_time for LINUX in OPTIMIZE mode is 30 sec
if {$CPU_time > 30.} {
puts "ERROR: OCC25413 is reproduced."
puts " Low performance: $CPU_time (but should be less than 30 sec)"
} else {
puts "Done!"
}
}
}

View File

@ -1,45 +0,0 @@
puts "============"
puts "OCC24596"
puts "============"
puts ""
###############################
## Slow import of IGES data
###############################
pload XDE
if { [regexp {Debug mode} [dversion]] } {
if { [regexp {Windows} [dversion]] } {
set max_time 30
} else {
set max_time 30
}
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 10
} else {
set max_time 10
}
}
dchrono h reset
dchrono h start
stepread [locate_data_file bug26327_fuse_input.stp] a *
for {set i 2} {$i < 22} {incr i} {
puts "a_$i"
bfuse a_1 a_1 a_$i
}
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time of import of IGES data is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time of import of IGES data is less than ${max_time} seconds - OK"
}

View File

@ -1,34 +0,0 @@
puts "============"
puts "OCC26447"
puts "============"
puts ""
##############################################################
# Performance degradation intersecting cylindrical surfaces
#############################################################
cylinder c1 0 0 0 1 0 0 0 -1 0 100
cylinder c2 0 0 0 0 1 0 1 0 0 100
mkface f1 c1
mkface f2 c2
dchrono cr reset
dchrono cr start
for {set i 1} {$i <= 1000} {incr i} {
bopcurves f1 f2
}
dchrono cr stop
if { [checkplatform -windows] } {
set max_time 7.5
} else {
set max_time 4.5
}
set TimeList [dchrono cr show]
regexp {Elapsed time: [-0-9.+eE]+ Hours [-0-9.+eE]+ Minutes ([-0-9.+eE]+) Seconds} $TimeList full ElapsedTime_sec
if { ${ElapsedTime_sec} > ${max_time} } {
puts "Error: Elapsed time of intersecting is more than ${max_time} seconds"
} else {
puts "OK: Elapsed time of intersecting is less than ${max_time} seconds"
}

View File

@ -1,25 +0,0 @@
puts "========"
puts "OCC26914"
puts "========"
puts ""
#################################
# Hang in surface approximation
#################################
set max_time 2
restore [locate_data_file bug23943_s.draw] s
dchrono cr reset
dchrono cr start
approxsurf rs s 5e-5 0 0 15 15 100 0
dchrono cr stop
set chrono_info [dchrono cr show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $chrono_info full CPU_time
if { $CPU_time > ${max_time} } {
puts "Elapsed time of surface approximation is more than ${max_time} seconds - Error"
} else {
puts "Elapsed time of surface approximation is less than ${max_time} seconds - OK"
}

View File

@ -1,28 +0,0 @@
puts "============"
puts "OCC27085"
puts "============"
puts ""
###############################
## ShapeUpgrade_UnifySameDomain very large performance difference for seemingly similar shapes
###############################
restore [locate_data_file bug27085_fused_primitive.fast.brep] fp
dchrono h reset
dchrono h start
unifysamedom res fp
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
set max_time 5
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}

View File

@ -1,28 +0,0 @@
puts "============"
puts "OCC27085"
puts "============"
puts ""
###############################
## ShapeUpgrade_UnifySameDomain very large performance difference for seemingly similar shapes
###############################
restore [locate_data_file bug27085_fused_primitive.slow.brep] sp
dchrono h reset
dchrono h start
unifysamedom res sp
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
set max_time 8
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}

View File

@ -1,57 +0,0 @@
puts "========"
puts "OCC21292"
puts "========"
puts ""
######################################################
# Shading on large model too long
######################################################
set BugNumber OCC21292
# 1 munite
cpulimit 60
restore [locate_data_file OCC21292.brep] result
vinit
vsetdispmode 1
chrono h reset; chrono h start
#
# DISPLAY OPERATION ----- START
#
vdisplay result
#
# DISPLAY OPERATION ----- FINISH
#
chrono h stop; set CPU_time_List [chrono h show]
set CPU_user_time [lindex ${CPU_time_List} 11]
puts "CPU_user_time=${CPU_user_time}"
checkprops result -s 1.40193e+07
checknbshapes result -vertex 372 -edge 369 -wire 2 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 745
if { [checkplatform -windows] } {
puts "windows"
set Good_CPU_user_time 0.
} else {
if {[string compare $tcl_platform(os) "SunOS"] == 0} {
puts "SunOS"
set Good_CPU_user_time 6.
} else {
puts "Linux"
set Good_CPU_user_time 6.
}
}
# Check time boolean operation
if {${Good_CPU_user_time} > ${CPU_user_time}} {
puts "OK ${BugNumber} : CPU user time is good"
} else {
puts "Faulty ${BugNumber} : CPU user time is wrong"
}
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -1,42 +0,0 @@
puts "============"
puts "OCC21858"
puts "============"
puts ""
####################################
# Visualization hangs on this face ( OCC21858.brep )
####################################
set BugNumber OCC21858
cpulimit 40
restore [locate_data_file OCC21858.brep] result
checkprops result -l 6.48642
checksection result
checknbshapes result -vertex 9 -edge 10 -wire 1 -face 1 -shell 0 -solid 0 -compsolid 0 -compound 0 -shape 21
vinit
vsetdispmode 1
dchrono TestTimer reset
dchrono TestTimer start
vdisplay result
dchrono TestTimer stop
vfit
puts ""
set time_o 0.1
set tim [ dchrono TestTimer show ]
regexp {Elapsed time: +([-0-9.+eE]+) Hours +([-0-9.+eE]+) Minutes +([-0-9.+eE]+) Seconds} $tim full hourVDisplay minuVDisplay secoVDisplay
set timVDisplay [expr $hourVDisplay * 3600 + $minuVDisplay * 60 + $secoVDisplay ]
if { ${tim} < ${time_o} } {
set chro "CHRONO : Faulty (${timVDisplay}%)"
set status 1
puts ${chro}
} else {
puts "${BugNumber} OK"
set status 0
}
puts "timVDisplay = ${timVDisplay}"
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -1,67 +0,0 @@
puts "========"
puts "OCC25487"
puts "========"
puts ""
##########################################
# Extrema_GenExtPS needs to be optimized
##########################################
pload DATAEXCHANGEKERNEL
# Restore testing shape and get timing characteristics for operation stepread
dchrono perf_h reset
dchrono perf_h start
stepread [locate_data_file OCC25487_LP1.stp] a *
dchrono perf_h stop
# Get elapsed time for operation stepread
set chrono_info [dchrono perf_h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $chrono_info full CPU_time
puts "Elapsed time is: $CPU_time"
# Check prformance on Windows
if { [checkplatform -windows] } {
if {[regexp {Debug mode} [dversion]]} {
# DEBUG mode
# initial CPU_time for WINDOWS in DEBUG mode is 410 ((186+19)*2) sec
puts "Checking WINDOWS performance in debug mode..."
if {$CPU_time > 410.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 410 sec)"
} else {
puts "Done!"
}
} else {
# OPTIMIZE mode
# initial CPU_time for WINDOWS in OPTIMIZE mode is 205 (186+19) sec
puts "Checking WINDOWS performance in optimize mode..."
if {$CPU_time > 205.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 205 sec)"
} else {
puts "Done!"
}
}
} else {
if {[regexp {Debug mode} [dversion]]} {
# DEBUG mode
# initial CPU_time for LINUX in DEBUG mode is 900 sec
puts "Checking LINUX performance in debug mode..."
if {$CPU_time > 900.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 900 sec)"
} else {
puts "Done!"
}
} else {
# OPTIMIZE mode
# initial CPU_time for LINUX in OPTIMIZE mode is 190 (173+17) sec
puts "Checking LINUX performance in optimize mode..."
if {$CPU_time > 190.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 190 sec)"
} else {
puts "Done!"
}
}
}

View File

@ -1,69 +0,0 @@
puts "========"
puts "OCC25487"
puts "========"
puts ""
##########################################
# Extrema_GenExtPS needs to be optimized
##########################################
cpulimit 1500
pload DATAEXCHANGEKERNEL
# Restore testing shape and get timing characteristics for operation stepread
dchrono perf_h reset
dchrono perf_h start
stepread [locate_data_file OCC25487_LP2.stp] a *
dchrono perf_h stop
# Get elapsed time for operation stepread
set chrono_info [dchrono perf_h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $chrono_info full CPU_time
puts "Elapsed time is: $CPU_time"
# Check prformance on Windows
if { [checkplatform -windows] } {
if {[regexp {Debug mode} [dversion]]} {
# DEBUG mode
# initial CPU_time for WINDOWS in DEBUG mode is 1208 ((549+55)*2) sec
puts "Checking WINDOWS performance in debug mode..."
if {$CPU_time > 1208.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 1208 sec)"
} else {
puts "Done!"
}
} else {
# OPTIMIZE mode
# initial CPU_time for WINDOWS in OPTIMIZE mode is 604 (549+55) sec
puts "Checking WINDOWS performance in optimize mode..."
if {$CPU_time > 604.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 604 sec)"
} else {
puts "Done!"
}
}
} else {
if {[regexp {Debug mode} [dversion]]} {
# DEBUG mode
# initial CPU_time for LINUX in DEBUG mode is 1500 sec
puts "Checking LINUX performance in debug mode..."
if {$CPU_time > 1500.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 1500 sec)"
} else {
puts "Done!"
}
} else {
# OPTIMIZE mode
# initial CPU_time for LINUX in OPTIMIZE mode is 575 (523+52) sec
puts "Checking LINUX performance in optimize mode..."
if {$CPU_time > 575.} {
puts "ERROR: OCC25487 is reproduced."
puts " Low performance: $CPU_time (but should be less than 575 sec)"
} else {
puts "Done!"
}
}
}

View File

@ -1,33 +0,0 @@
puts "=========="
puts "OCC24024"
puts "=========="
puts ""
######################################
# Slow import of specific STEP data
######################################
cpulimit 1700
set ver [dversion]
if { [regexp "Debug" $ver] != 1 } {
set cpu_check 450
} else {
set cpu_check 1600
}
dchrono h reset
dchrono h start
stepread [locate_data_file bug24024_slow_import.stp] a *
dchrono h stop
tpcompound result
set info [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $info full cpu_time
if { $cpu_time > $cpu_check } {
puts "Error: performance of import of data is low"
} else {
puts "OK: performance of import of data is high"
}
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -16,44 +16,25 @@ restore [locate_data_file buc60068b.rle] h
## fuse
dchrono j start
bfuse resab a b
dchrono j stop
dchrono j stop counter BFuseAB
tscale c 0 0 0 100
tscale d 0 0 0 100
dchrono k start
bfuse rescd c d
dchrono k stop
dchrono k stop counter BFuseCD
tscale e 0 0 0 1000
tscale f 0 0 0 1000
dchrono l start
bfuse resef e f
dchrono l stop
dchrono l stop counter BFuseEF
tscale g 0 0 0 10000
tscale h 0 0 0 10000
dchrono m start
bfuse resgh g h
dchrono m stop
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono j show] full Jseconds
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono k show] full Kseconds
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono l show] full Lseconds
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono m show] full Mseconds
#sometimes CPU user time may be 0
set Jtime [expr ($Jseconds * 1.1) + 0.2]
set Ktime $Kseconds
set Ltime $Lseconds
set Mtime $Mseconds
if { $Jtime < $Ktime || $Jtime < $Ltime || $Jtime < $Mtime} {
puts "Error: incorrect performance of bfuse operation:"
puts "SCALE=1 : $Jtime seconds."
puts "SCALE=100 : $Ktime seconds."
puts "SCALE=1000 : $Ltime seconds."
puts "SCALE=10000 : $Mtime seconds."
}
dchrono m stop counter BFuseGH
compound resab rescd resef resgh result

View File

@ -10,14 +10,6 @@ puts ""
# http://www.opencascade.org/org/forum/thread_12369/?forum=3
# in OCCT 6.6.0 32-bit mode on Windows this fails with N >= 40 (out of memory)
if { [regexp {Debug mode} [dversion]] } {
cpulimit 2000
set max_time 1500
} else {
cpulimit 500
set max_time 250
}
# box plate to cut the holes from
box b 100 100 1
@ -38,14 +30,11 @@ eval compound $holes drill
set mem1 [meminfo h]
dchrono cpu reset
dchrono cpu start
dchrono cpu restart
bcut r b drill
dchrono cpu stop
puts [dchrono cpu show]
set q2 [dchrono cpu show]
dchrono cpu stop counter BCut
set mem2 [meminfo h]
@ -60,13 +49,6 @@ if { [expr ${mem2} - ${mem1}] > ${mem_delta}} {
puts "Faulty : there is memory leak"
}
regexp {CPU user time: ([-0-9.+eE]+) seconds} ${q2} full z
if { ${z} > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
vinit
vdisplay r
vfit

View File

@ -16,44 +16,25 @@ restore [locate_data_file buc60068b.rle] h
## section
dchrono j start
bsection resab a b
dchrono j stop
dchrono j stop counter BSectionAB
tscale c 0 0 0 100
tscale d 0 0 0 100
dchrono k start
bsection rescd c d
dchrono k stop
dchrono k stop counter BSectionCD
tscale e 0 0 0 1000
tscale f 0 0 0 1000
dchrono l start
bsection resef e f
dchrono l stop
dchrono l stop counter BSectionEF
tscale g 0 0 0 10000
tscale h 0 0 0 10000
dchrono m start
bsection resgh g h
dchrono m stop
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono j show] full Jseconds
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono k show] full Kseconds
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono l show] full Lseconds
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono m show] full Mseconds
#sometimes CPU user time may be 0
set Jtime [expr ($Jseconds * 1.1) + 0.2]
set Ktime $Kseconds
set Ltime $Lseconds
set Mtime $Mseconds
if { $Jtime < $Ktime || $Jtime < $Ltime || $Jtime < $Mtime} {
puts "Error: incorrect performance of bsection operation:"
puts "SCALE=1 : $Jtime seconds."
puts "SCALE=100 : $Ktime seconds."
puts "SCALE=1000 : $Ltime seconds."
puts "SCALE=10000 : $Mtime seconds."
}
dchrono m stop counter BSectionGH
compound resab rescd resef resgh result

3
tests/perf/bop/end Normal file
View File

@ -0,0 +1,3 @@
if { [isdraw result] } {
checkshape result
}

3
tests/perf/caf/begin Normal file
View File

@ -0,0 +1,3 @@
pload DCAF
set subgroup caf

10
tests/perf/caf/bug1454 Normal file
View File

@ -0,0 +1,10 @@
puts "===== OCC1454 ====="
#######################################################################################
# Improve performance of TDF_Label::FindChild
#######################################################################################
puts "Info: Open the document with 80000 sublabels of the label 0:2"
dchrono h restart
Open [locate_data_file OCC1726.cbf] D
dchrono h stop counter OpenCbf

View File

@ -0,0 +1,10 @@
puts "===== OCC1454 ====="
#######################################################################################
# Improve performance of TDF_Label::FindChild
#######################################################################################
puts "Info: Open the document with 80000 sublabels of the label 0:2"
dchrono h restart
Open [locate_data_file OCC1726.std] D
dchrono h stop counter OpenStd

View File

@ -7,20 +7,15 @@ puts ""
#######################################################################################
puts "Info: Open the document with 80000 sublabels of the label 0:2"
chrono h reset; chrono h start
dchrono h restart
Open [locate_data_file OCC1726.cbf] D
chrono h stop; chrono h show
dchrono h stop counter OpenCbf
set IsGood 1
puts "Info: Close the document"
chrono h reset; chrono h start
dchrono h restart
if [catch {Close D} result] {
set IsGood 0
}
chrono h stop; chrono h show
if { ${IsGood} == 0} {
puts "Faulty OCC1726"
} else {
puts "OK OCC1726"
}
dchrono h stop counter CloseDoc

View File

@ -7,20 +7,15 @@ puts ""
#######################################################################################
puts "Info: Open the document with 80000 sublabels of the label 0:2"
chrono h reset; chrono h start
dchrono h restart
Open [locate_data_file OCC1726.std] D
chrono h stop; chrono h show
dchrono h stop counter OpenStd
set IsGood 1
puts "Info: Close the document"
chrono h reset; chrono h start
dchrono h restart
if [catch {Close D} result] {
set IsGood 0
}
chrono h stop; chrono h show
if { ${IsGood} == 0} {
puts "Faulty OCC1726"
} else {
puts "OK OCC1726"
}
dchrono h stop counter CloseDoc

View File

@ -40,23 +40,7 @@ NewShape D ${lab8} shape8
# Save document
file delete -force ${imagedir}/2793.cbf
dchrono h reset
dchrono h start
dchrono h restart
SaveAs D ${imagedir}/2793.cbf
dchrono h stop
Close D
# Check
set info [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $info full cpu_time
set max_time 100
if { [regexp {Debug mode} [dversion]] } {
set max_time 200
}
if { $cpu_time > ${max_time} } {
puts "Error: performance saving document D is too low"
} else {
puts "OK: performance saving document D is high"
}
dchrono h stop counter SaveAs
Close D

20
tests/perf/caf/bug5023 Normal file
View File

@ -0,0 +1,20 @@
puts "================"
puts "OCC5023"
puts "================"
puts ""
######################################################
# Performance regression in opening OCAF file
######################################################
set aFile [locate_data_file OCC5023.cbf]
puts "Info: Restore the document"
if [info exists DD] {
catch {Close DD}; unset DD
}
dchrono h restart
Open ${aFile} DD
dchrono h stop counter OpenDoc

View File

@ -0,0 +1,20 @@
puts "================"
puts "OCC5023"
puts "================"
puts ""
######################################################
# Performance regression in opening OCAF file
######################################################
set aFile [locate_data_file OCC5023.std]
puts "Info: Restore the document"
if [info exists DD] {
catch {Close DD}; unset DD
}
dchrono h restart
Open ${aFile} DD
dchrono h stop counter OpenDoc

1
tests/perf/de/begin Normal file
View File

@ -0,0 +1 @@
pload XDE

17
tests/perf/de/bug24024 Normal file
View File

@ -0,0 +1,17 @@
puts "=========="
puts "OCC24024"
puts "=========="
puts ""
######################################
# Slow import of specific STEP data
######################################
cpulimit 1700
dchrono h restart
stepread [locate_data_file bug24024_slow_import.stp] a *
dchrono h stop counter stepread
tpcompound result
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -3,14 +3,12 @@ puts "0026338: STL export (especially binary) needs a lot of time if selected ex
puts "========"
puts ""
pload MODELING XSDRAW
# make sphere triangulated with 2M triangles
sphere s 10
tessellate result s 1000 1000
trinfo result
# write to binary STL
chrono s reset; chrono s start
chrono s restart
writestl result $imagedir/${casename}-binary.stl 1
chrono s stop; chrono s show
chrono s stop counter writestl

View File

@ -3,14 +3,12 @@ puts "0026338: STL export (especially binary) needs a lot of time if selected ex
puts "========"
puts ""
pload MODELING XSDRAW
# make sphere triangulated with 2M triangles
sphere s 10
tessellate result s 1000 1000
trinfo result
# write to ascii STL
chrono s reset; chrono s start
dchrono s restart
writestl result $imagedir/${casename}-ascii.stl 0
chrono s stop; chrono s show
dchrono s stop counter writestl

View File

@ -8,19 +8,9 @@ puts ""
set max_time 8
dchrono cr reset
dchrono cr start
dchrono cr restart
ReadStep D [locate_data_file bug27570.stp]
dchrono cr stop
# check time
set chrono_info [dchrono cr show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $chrono_info full CPU_time
if { $CPU_time > ${max_time} } {
puts "CPU user time of STEP translation is more than ${max_time} seconds - Error"
} else {
puts "CPU user time of STEP translation is less than ${max_time} seconds - OK"
}
dchrono cr stop counter ReadStep
# check number of shapes
XGetOneShape result D

View File

@ -0,0 +1,27 @@
puts "========"
puts "OCC25514"
puts "========"
puts ""
#########################################################################################
# TKernel, OSD_Timer - do not accumulate error in timer within queries in running state
#########################################################################################
# Set number of cycle iteration
set IterationCount 10000
set iCounter 1
# Set rank of timer's value
set TimeRank 2
# Start timers
dchrono bug_info_1 restart
dchrono bug_info_2 restart
# Operation cycle
while {$iCounter != $IterationCount} {
set iCounter [expr {$iCounter + 1}]
}
# Stop timers and show timer's values
dchrono bug_info_1 stop counter bug_info_1
dchrono bug_info_2 stop counter bug_info_2

View File

@ -14,13 +14,6 @@ mkcurve c2 a2
cpulimit 20
dchrono h reset; dchrono h start
dchrono h restart
extrema c1 c2
dchrono h stop; dchrono h show
regexp {CPU user time: (\d*)} [dchrono h show] dummy sec
if {$sec > 10} {
puts "Error: too long computation time $sec seconds"
} else {
puts "Computation time is OK"
}
dchrono h stop counter extrema

View File

@ -14,13 +14,6 @@ mkcurve c2 a2
cpulimit 20
dchrono h reset; dchrono h start
dchrono h restart
extrema c1 c2
dchrono h stop; dchrono h show
regexp {CPU user time: (\d*)} [dchrono h show] dummy sec
if {$sec > 10} {
puts "Error: too long computation time $sec seconds"
} else {
puts "Computation time is OK"
}
dchrono h stop counter extrema

View File

@ -11,18 +11,11 @@ explode aShape
cpulimit 20
# Check computation time
chrono h reset; chrono h start
dchrono h restart
for { set i 1 } { $i <= 100 } { incr i } {
distmini d aShape_1 aShape_2
}
chrono h stop; chrono h show
regexp {CPU user time: (\d*)} [dchrono h show] dummy sec
if {$sec > 1} {
puts "Error: too long computation time $sec seconds"
} else {
puts "Computation time is OK"
}
dchrono h stop counter distmini
# Check result of distance distance
set absTol 1.0e-10

View File

@ -11,19 +11,12 @@ explode aShape
cpulimit 20
# Check computation time
chrono h reset; chrono h start
dchrono h restart
for { set i 1 } { $i <= 100 } { incr i } {
distmini d aShape_1 aShape_2
distmini d aShape_2 aShape_1
}
chrono h stop; chrono h show
regexp {CPU user time: (\d*)} [dchrono h show] dummy sec
if {$sec > 1} {
puts "Error: too long computation time $sec seconds"
} else {
puts "Computation time is OK"
}
dchrono h stop counter distmini
# Check result of distance distance
set absTol 1.0e-10

View File

@ -3,3 +3,10 @@
003 bspline
004 fclasses
005 de
006 caf
007 heal
008 mesh
009 modalg
010 moddata
011 sewing
012 vis

1
tests/perf/heal/begin Normal file
View File

@ -0,0 +1 @@
pload XSDRAW

View File

@ -0,0 +1,25 @@
puts "============"
puts "OCC24596"
puts "============"
puts ""
###############################
## Slow import of IGES data
###############################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
cpulimit 8500
} else {
cpulimit 2600
}
# 1 - igesread
dchrono h restart
igesread [locate_data_file 100B_Nosecone_with_Triangular_FSS.igs] a 43479
dchrono h stop counter igesread
# 2 - checkshape
dchrono h2 restart
checkshape a_1
dchrono h2 stop counter checkshape

View File

@ -0,0 +1,25 @@
puts "============"
puts "OCC24596"
puts "============"
puts ""
###############################
## Slow import of IGES data
###############################
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
cpulimit 8500
} else {
cpulimit 2600
}
# 1 - igesread
dchrono h restart
igesread [locate_data_file 100B_Nosecone_with_Triangular_FSS.igs] b 86884
dchrono h stop counter igesread
# 2 - checkshape
dchrono h2 restart
checkshape b_1
dchrono h2 stop counter checkshape

27
tests/bugs/heal/bug25424 → tests/perf/heal/bug25424 Executable file → Normal file
View File

@ -9,32 +9,9 @@ puts ""
pload XDE
pload QAcommands
if { [regexp {Debug mode} [dversion]] } {
set max_time 200
} else {
if { [regexp {Windows} [dversion]] } {
set max_time 15
} else {
set max_time 20
}
}
dchrono h reset
dchrono h start
dchrono h restart
testreadstep [locate_data_file bug25424_Secure.stp] result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
if { $z > ${max_time} } {
puts "Elapsed time of testreadstep is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time of testreadstep is less than ${max_time} seconds - OK"
}
dchrono h stop counter testreadstep
checkprops result -s 6998.53
checkshape result

View File

@ -13,18 +13,8 @@ set max_time 5
restore [locate_data_file bug26871_curve3d] c3d
restore [locate_data_file bug26871_surface] surf
dchrono cr reset
dchrono cr start
dchrono cr restart
OCC24008 c3d surf
dchrono cr stop
set logTime [dchrono cr show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $logTime full z
if { $z > ${max_time} } {
puts "Elapsed time ($z) is more than ${max_time} seconds - Error"
} else {
puts "Elapsed time ($z) is less than ${max_time} seconds - OK"
}
dchrono cr stop counter OCC24008

View File

@ -8,24 +8,12 @@ puts ""
restore [locate_data_file bug23650_slowmesh.brep] result
tclean result
dchrono h reset
dchrono h start
dchrono h restart
incmesh result 0.2
dchrono h stop
set info [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $info full cpu_time
if { $cpu_time > 5. } {
puts "Error : meshing is slow"
} else {
puts "OK: meshing is quite fast"
}
dchrono h stop counter incmesh
vinit
vdisplay result
vfit
vsetdispmode 1
checkview -screenshot -3d -path ${imagedir}/${test_image}.png
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

19
tests/perf/mesh/bug24022 Normal file
View File

@ -0,0 +1,19 @@
puts "=========="
puts "OCC24022"
puts "=========="
puts ""
#####################################
# Slow meshing in BRepMesh
#####################################
restore [locate_data_file bug24022_hung_mesh.brep] result
tclean result
dchrono h restart
incmesh result 0.1
dchrono h stop counter incmesh
vinit
vdisplay result
vfit
vsetdispmode 1
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1,22 @@
puts "=========="
puts "OCC24968"
puts "=========="
puts ""
#####################################
# Impove BRepMesh_Classifier to cope with intersection of huge number of wires
#####################################
cpulimit 2500
restore [locate_data_file bug24968_Shape_1.brep] result
tclean result
dchrono h restart
incmesh result 0.1
dchrono h stop counter incmesh
vinit
vdisplay result
vfit
vsetdispmode 1
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1,22 @@
puts "=========="
puts "OCC24968"
puts "=========="
puts ""
#####################################
# Impove BRepMesh_Classifier to cope with intersection of huge number of wires
#####################################
cpulimit 2500
restore [locate_data_file bug24968_Shape_1.brep] result
tclean result
dchrono h restart
incmesh result 0.1 -parallel
dchrono h stop counter incmesh
vinit
vdisplay result
vfit
vsetdispmode 1
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -10,21 +10,15 @@ restore [locate_data_file bug25264_wire.brep] w
# right revol position, mesh is very fast.
revol result1 w 20583.283203125 14039.0208237378 28443.2585934755 0 0 1 360
dchrono i reset
dchrono i start
dchrono i restart
incmesh result1 0.1
dchrono i stop
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono i show] full Iseconds
dchrono i stop counter incmesh_1
# wrong revol position, mesh is very slow in occ6.7, while in occ6.2 is very fast.
revol result2 w 20583.283203125 14039.0208217527 28443.25860033352 0 0 1 360
dchrono j reset
dchrono j start
dchrono j restart
incmesh result2 0.1
dchrono j stop
regexp {CPU user time: ([0-9|.]+) seconds} [dchrono j show] full Jseconds
checkreal "Meshing time" ${Jseconds} ${Iseconds} 0.05 0
dchrono j stop counter incmesh_2
checkview -display result1 -3d -path ${imagedir}/${test_image}_1.png
checkview -display result2 -3d -path ${imagedir}/${test_image}_2.png

View File

@ -10,12 +10,9 @@ set BugNumber OCC27119
restore [locate_data_file bug27119_GrossPlatePart3Step2TransformedFace.brep] result
dchrono t reset
dchrono t start
dchrono t restart
incmesh result 1.e-6
dchrono t stop
set time [dchrono t show]
regexp {CPU user time: ([0-9|.]+) seconds} $time full seconds
dchrono t stop counter incmesh
set tri 0
set nod 0
@ -36,9 +33,4 @@ checkreal "Nb of triangles" $tri $ref_tri 0 $tol_rel
checkreal "Nb of nodes" $nod $ref_nod 0 $tol_rel
checkreal "Deflection" $def $ref_def 1.e-12 0
set eps_time 3
if { $seconds > $eps_time } {
puts "Error: Too slow ($seconds > $eps_time)"
}
set 3dviewer 1
set 3dviewer 1

6
tests/bugs/mesh/bug27626 → tests/perf/mesh/bug27626 Executable file → Normal file
View File

@ -12,8 +12,7 @@ tclean a
vinit
vsetdispmode 1
dchrono h reset
dchrono h start
dchrono h restart
#
# DISPLAY OPERATION ----- START
#
@ -21,8 +20,7 @@ vdisplay a
#
# DISPLAY OPERATION ----- FINISH
#
dchrono h stop
dchrono h show
dchrono h stop counterv display
vfit
checkview -screenshot -3d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1 @@
FAILED /Not connected mesh inside face/ disconnected mesh

View File

@ -15,17 +15,13 @@ restore [locate_data_file OCC10160-2.brep] b2
set NbTests 3
dchrono h0 reset
dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop
set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -35,13 +31,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopcommon
checkprops result -s 1.30062e+07
checkshape result

View File

@ -14,14 +14,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -31,12 +29,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopfuse
checkprops result -s 3.20326e+07
checkshape result

View File

@ -14,14 +14,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -31,12 +29,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopcut
checkprops result -s 3.05154e+07
checkshape result

View File

@ -14,14 +14,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -31,12 +29,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter boptuc
checkprops result -s 6.38359e+06
checkshape result

View File

@ -16,14 +16,12 @@ restore [locate_data_file OCC10160-2.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -33,12 +31,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopfuse
checkprops result -s 4.75218e+07
checkshape result

View File

@ -15,14 +15,12 @@ restore [locate_data_file OCC10160-2.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -32,12 +30,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopcut
checkprops result -s 2.36194e+07
checkshape result

View File

@ -15,14 +15,12 @@ restore [locate_data_file OCC10160-2.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -32,12 +30,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter boptuc
#CR24137 checkprops result -s 3.56087e+07
checkprops result -s 3.52471e+07

View File

@ -15,14 +15,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -32,12 +30,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopcommon
#CR24317 checkprops result -s 782201
checkprops result -s 784833

View File

@ -15,14 +15,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -32,12 +30,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopfuse
checkprops result -s 3.65961e+07
checkshape result

View File

@ -16,14 +16,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -33,12 +31,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopcut
checkprops result -s 3.05118e+07
checkshape result

View File

@ -15,14 +15,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -32,12 +30,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter boptuc
checkprops result -s 6.87093e+06
checkshape result

View File

@ -14,14 +14,12 @@ restore [locate_data_file OCC10160-3.brep] b2
set NbTests 3
puts "Prepare boolean operation ..."
dchrono h0 reset; dchrono h0 start
dchrono h0 restart
bop b1 b2
dchrono h0 stop; set CPU_time0_List [dchrono h0 show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time0_List full CPU_user_time0
puts "CPU_user_time0=${CPU_user_time0}"
dchrono h0 stop counter bop
puts "Start boolean operation ..."
dchrono h reset; dchrono h start
dchrono h restart
#
# BOOLEAN OPERATION ----- START
#
@ -31,12 +29,7 @@ for {set i 1} {$i <= ${NbTests}} {incr i} {
#
# BOOLEAN OPERATION ----- FINISH
#
dchrono h stop; set CPU_time_List [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $CPU_time_List full CPU_user_time
puts "Finish boolean operation ..."
puts "CPU_user_time=${CPU_user_time}"
set CPU_user_time [expr ${CPU_user_time} / ${NbTests}]
puts "CPU_user_time=${CPU_user_time}"
dchrono h stop counter bopcommon
checkprops result -s 4.86635e+06
checkshape result

View File

@ -9,10 +9,6 @@ puts "OCC165"
puts "========"
puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
dchrono h reset
dchrono h start
restore [locate_data_file offset_wire_019.brep] a
checkshape a
@ -49,8 +45,6 @@ for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set
set FinishStepOffset $stepoffset
}
dchrono h show
if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
set IsBeginMade 0
set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
@ -73,9 +67,6 @@ if {$IsGood == 1} {
puts "Faulty OCC165"
}
dchrono h stop
dchrono h show
renamevar result_1 result
checkprops result -l 0

View File

@ -5,9 +5,6 @@ puts "OCC165"
puts "========"
puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
dchrono h reset
dchrono h start
restore [locate_data_file offset_wire_019.brep] a
checkshape a
@ -44,8 +41,6 @@ for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set
set FinishStepOffset $stepoffset
}
dchrono h show
if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
set IsBeginMade 0
set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
@ -68,9 +63,6 @@ if {$IsGood == 1} {
puts "Faulty OCC165"
}
dchrono h stop
dchrono h show
renamevar result_1 result
checkprops result -l 1081.52

View File

@ -6,10 +6,6 @@ puts "OCC165"
puts "========"
puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
dchrono h reset
dchrono h start
restore [locate_data_file offset_wire_019.brep] a
checkshape a
@ -46,8 +42,6 @@ for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set
set FinishStepOffset $stepoffset
}
dchrono h show
if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
set IsBeginMade 0
set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
@ -75,7 +69,4 @@ renamevar result_1 result
checkprops result -l 1112.83
checkshape result
checksection result
checkview -display result -2d -path ${imagedir}/${test_image}.png
dchrono h stop
dchrono h show
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -5,9 +5,6 @@ puts "OCC165"
puts "========"
puts "Bug regression in BRepOffsetAPI_MakeOffset class (offsetting in OY direction)"
dchrono h reset
dchrono h start
restore [locate_data_file offset_wire_019.brep] a
checkshape a
@ -44,8 +41,6 @@ for {set stepoffset $start_stepoffset} {$stepoffset <= $finish_stepoffset} {set
set FinishStepOffset $stepoffset
}
dchrono h show
if {$IsBeginMade == 1 && ($IsMade == 0 || $i == $interval_numb) } {
set IsBeginMade 0
set resume_tmp "from [format "%0.2f" $BeginStepOffset] till [format "%0.2f" $FinishStepOffset]\n"
@ -73,7 +68,4 @@ renamevar result_1 result
checkprops result -l 1113.06
checkshape result
checksection result
checkview -display result -2d -path ${imagedir}/${test_image}.png
dchrono h stop
dchrono h show
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1,31 @@
puts "============"
puts "OCC19793"
puts "============"
puts ""
#######################################################################
# Fuse problem of symetrical shapes. Appendix for NPAL19789
#######################################################################
cpulimit 2500
set BugNumber OCC19793
puts "Load first shape ..."
restore [locate_data_file bug19793_new_shape.brep] b1
puts "Load second shape ..."
restore [locate_data_file bug19793_shape.brep] b2
puts "Prepare boolean operation ..."
dchrono perf_h restart
bop b1 b2
dchrono perf_h stop counter bop
puts "Start boolean operation ..."
bopsection result
puts "Finish boolean operation ..."
checkprops result -l 17730.1
checkshape result
checksection result
checknbshapes result -vertex 68 -edge 70 -wire 0 -face 0 -shell 0 -solid 0 -compsolid 0 -compound 1 -shape 139
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1,17 @@
puts "============"
puts "OCC23906"
puts "============"
puts ""
###############################
## Performance of the projection algorithm in some cases became lower after integration of the fix for the bug 0022610
###############################
restore [locate_data_file bug23906_f.brep] f
point p 3.5527136788005e-015 100 100
dchrono h restart
projponf f p -min -t
dchrono h stop counter projponf

View File

@ -8,23 +8,11 @@ puts ""
pload QAcommands
dchrono h reset
dchrono h start
dchrono h restart
OCC24005 result
dchrono h stop
set q [dchrono h show]
regexp {CPU user time: ([-0-9.+eE]+) seconds} $q full z
puts "$z"
set max_time 0.4
if { $z > ${max_time} } {
puts "Elapsed time is more than ${max_time} seconds - Faulty"
} else {
puts "Elapsed time is less than ${max_time} seconds - OK"
}
dchrono h stop counter OCC24005
if { [regexp {Ellipse} [dump result]] == 1 } {
puts "result is OK"

View File

@ -0,0 +1,26 @@
puts "========="
puts "OCC24696"
puts "========="
puts ""
###########################################################
# Lower performance of the new Edge/Edge intersection algorithm
###########################################################
pload QAcommands
dchrono h restart
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop counter EdgeIntersection
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1,30 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
dchrono h restart
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 0 0 1 45
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop counter EdgeIntersection
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1,30 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
dchrono h restart
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 0 1 1 45
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop counter EdgeIntersection
checkview -display result -2d -path ${imagedir}/${test_image}.png

View File

@ -0,0 +1,30 @@
puts "========="
puts "OCC24751"
puts "========="
puts ""
###########################################################
# Performance improvements in the Edge/Edge intersection algorithm
###########################################################
pload QAcommands
dchrono h restart
restore [locate_data_file bug24696_cx_e1200_nurbs.brep] cx
###------------------####
trotate cx 0 0 0 1 1 1 45
###------------------####
bclearobjects
bcleartools
set edges [explode cx e]
set nbe [llength $edges]
for {set i 1} {$i <= $nbe} {incr i} {baddobjects cx_$i}
bfillds
bbuild result
dchrono h stop counter EdgeIntersection
checkview -display result -2d -path ${imagedir}/${test_image}.png

Some files were not shown because too many files have changed in this diff Show More