| Deutsch English Français Italiano |
|
<vgjpub$2t4js$1@dont-email.me> View for Bookmarking (what is this?) Look up another Usenet article |
Path: ...!eternal-september.org!feeder2.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: greg <gregor.ebbing@gmx.de>
Newsgroups: comp.lang.tcl
Subject: Re: Performance problems with "photo copy -to"
Date: Fri, 8 Nov 2024 02:36:11 +0100
Organization: A noiseless patient Spider
Lines: 89
Message-ID: <vgjpub$2t4js$1@dont-email.me>
References: <vgj8r1$2poj6$1@dont-email.me>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: 8bit
Injection-Date: Fri, 08 Nov 2024 02:36:11 +0100 (CET)
Injection-Info: dont-email.me; posting-host="c016d56a3120e3d13eba521e7a0d1eba";
logging-data="3052156"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+VnYtlHT1LByw5mQN2Nc/0UI5xw4kjhaY="
User-Agent: Mozilla Thunderbird
Cancel-Lock: sha1:4aMQPkwqgtBKsyqTP8k7uI6Tgu0=
Content-Language: de-DE
In-Reply-To: <vgj8r1$2poj6$1@dont-email.me>
Bytes: 4006
Am 07.11.24 um 21:43 schrieb Paul Obermeier:
> I have a simple tiling procedure and noticed a slowdown when using large
> images,
> i.e. when doing lots of copies.
>
> I noticed the following behaviours (both on Windows and Linux):
> 1. The time for copying does not grow linearly, as expected, but gets
> larger the more copies are involved.
> 2. The copy time of Tcl/Tk 9 is nearly twice the time as when using Tcl/
> Tk 8.6.15 or the combination
> Tcl 8.7/Tk 9. So this performance degradation does not seem to stem
> from Tk9, but from Tcl9. Strange!
>
> Can anybody confirm my measurements?
>
> Thanks,
> Paul
>
>
> Using Tcl 8.6.15, Tk 8.6.15
> Time for 100 copies: 0.69 seconds ( 6 milliseconds / copy)
> Time for 400 copies: 10.26 seconds ( 25 milliseconds / copy)
> Time for 900 copies: 51.12 seconds ( 56 milliseconds / copy)
>
> Using Tcl 8.7b1, Tk 9.0.0
> Time for 100 copies: 0.70 seconds ( 7 milliseconds / copy)
> Time for 400 copies: 10.22 seconds ( 25 milliseconds / copy)
> Time for 900 copies: 51.35 seconds ( 57 milliseconds / copy)
>
> Using Tcl 9.0.0, Tk 9.0.0
> Time for 100 copies: 1.28 seconds ( 12 milliseconds / copy)
> Time for 400 copies: 19.45 seconds ( 48 milliseconds / copy)
> Time for 900 copies: 98.16 seconds (109 milliseconds / copy)
>
>
> package require Tk
>
> proc Tile { phImg xRepeat yRepeat } {
> set startTime [clock milliseconds]
> set w [image width $phImg]
> set h [image height $phImg]
> set w2 [expr {$w * $xRepeat}]
> set h2 [expr {$h * $yRepeat}]
>
> set tileImg [image create photo -width $w2 -height $h2]
>
> for { set x 0 } { $x < $xRepeat } { incr x } {
> for { set y 0 } { $y < $yRepeat } { incr y } {
> $tileImg copy $phImg -to [expr {$x*$w}] [expr {$y*$h}]
> }
> }
> set endTime [clock milliseconds]
> puts [format "Time for %4d copies: %5.2f seconds (%3d
> milliseconds / copy)" \
> [expr {$xRepeat * $yRepeat}] \
> [expr { ($endTime - $startTime) / 1000.0 }] \
> [expr { ($endTime - $startTime) / ($xRepeat * $yRepeat) }]]
> return $tileImg
> }
>
> set srcImg [image create photo -width 500 -height 500]
>
> puts "Using Tcl [info patch], Tk [package version Tk]"
> Tile $srcImg 10 10
> Tile $srcImg 20 20
> Tile $srcImg 30 30
>
> exit
Hello,
Using Tcl 8.6.15, Tk 8.6.15
Time for 100 copies: 1.52 seconds ( 15 milliseconds / copy)
Time for 400 copies: 23.17 seconds ( 57 milliseconds / copy)
Time for 900 copies: 117.39 seconds (130 milliseconds / copy)
Using Tcl 9.0.0, Tk 9.0.0
Time for 100 copies: 1.50 seconds ( 14 milliseconds / copy)
Time for 400 copies: 23.18 seconds ( 57 milliseconds / copy)
Time for 900 copies: 117.57 seconds (130 milliseconds / copy)
both Tcl/Tk from debian sid
Gregor