Tobias Schoch
2022-May-19 18:37 UTC
[Rd] Windows Rgui.exe 4.2.0: Call of txtProgressBar() slows down dramatically after subsequent calls
The issue appears in Rgui.exe version 4.2.0 (called "new" version; see bottom). The issue does NOT appear with Rterm.exe (same R version). I provide a minimal example (foo) below. If I run function foo 3 times in a row, the execution time increases considerably (although it should not). 1st foo call: 5 seconds 2nd foo call: 13 seconds 3rd foo call: 20 seconds The execution time keeps increasing when I call foo more often. In addition, Rgui.exe becomes laggy in taking input from the keyboard. Sometimes, but rarely, I observe that Rgui.exe terminates with "Error: C stack usage is too close to the limit". Unfortunately, I cannot reproduce the stack error consistently. On the "old" Rgui.exe version 4.1.2, execution time stays roughly constant over consecutive calls of foo (as expected). Unfortunately, I do not have a running 4.1.3 version; thus, I cannot tell how it behaves there. Do you have any clue why this happens? Kind regards, Tobias #------------------------------ # minimal working example: interestingly, the issue does not occur # when 'style = 1' in txtProgressBar() foo <- function(n) { p_bar <- txtProgressBar(style = 3) for (i in 1:n) { Sys.sleep(0.01) setTxtProgressBar(p_bar, i / n) } close(p_bar) } # 1st call system.time(foo(100)) # 2nd call system.time(foo(100)) # 3rd call system.time(foo(100)) #------------------------------ My R versions: "Old" Rgui.exe R version 4.1.2 (2021-11-01) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 19044) "New" Rgui.exe R version 4.2.0 (2022-04-22 ucrt) Platform: x86_64-w64-mingw32/x64 (64-bit) Running under: Windows 10 x64 (build 19044) ------------------------------------------------------------------ Fachhochschule Nordwestschweiz FHNW Hochschule f?r Wirtschaft Institute for Competitiveness and Communication Empirische Wirtschafts- und Sozialforschung Prof. Dr. Tobias Schoch Riggenbachstrasse 16 CH-4600 Olten Schweiz / Switzerland ------------------------------------------------------------------ T +41 62 957 21 02 Mail tobias.schoch at fhnw.ch http://www.fhnw.ch/de/personen/tobias-schoch
Paulo Barata
2022-May-19 20:34 UTC
[Rd] Windows Rgui.exe 4.2.0: Call of txtProgressBar() slows down dramatically after subsequent calls
There runs of Tobias' foo function on different versions of R that I have installed here. R version 4.1.1 Patched (2021-09-30 r80997) elapsed time of three trials: 1.31 / 1.33 / 1.35 R version 4.1.2 Patched (2021-11-02 r81131) elapsed time of three trials: 1.34 / 1.34 / 1.34 R version 4.1.3 Patched (2022-03-10 r81878) elapsed time of three trials: 1.33 / 1.34 / 1.37 R version 4.2.0 Patched (2022-05-17 r82371 ucrt) elapsed time of three trials: 7.14 / 17.56 / 27.21 Platform is always: x86_64-w64-mingw32/x64 (64-bit) RGui.exe running on Windows 10 Professional 64-bit (build 19044.1706) Not only, as Tobias has shown, there is an increasing time among the three trials in R 4.2.0 Patched, but also the average time for each of the 4.1.X Patched versions (with nearly constant time each) is well smaller than the first trial with R 4.2.0 Patched. Regards, Paulo Barata (Rio de Janeiro - Brazil) ---------------------------------------------------------- On 19/05/2022 15:37, Tobias Schoch wrote:> The issue appears in Rgui.exe version 4.2.0 (called "new" version; see bottom). The issue does NOT appear with Rterm.exe (same R version). > > I provide a minimal example (foo) below. If I run function foo 3 times in a row, the execution time increases considerably (although it should not). > > 1st foo call: 5 seconds > 2nd foo call: 13 seconds > 3rd foo call: 20 seconds > > The execution time keeps increasing when I call foo more often. In addition, Rgui.exe becomes laggy in taking input from the keyboard. > > Sometimes, but rarely, I observe that Rgui.exe terminates with "Error: C stack usage is too close to the limit". Unfortunately, I cannot reproduce the stack error consistently. > > On the "old" Rgui.exe version 4.1.2, execution time stays roughly constant over consecutive calls of foo (as expected). Unfortunately, I do not have a running 4.1.3 version; thus, I cannot tell how it behaves there. > > Do you have any clue why this happens? > > Kind regards, > Tobias > > > #------------------------------ > # minimal working example: interestingly, the issue does not occur > # when 'style = 1' in txtProgressBar() > foo <- function(n) > { > p_bar <- txtProgressBar(style = 3) > for (i in 1:n) { > Sys.sleep(0.01) > setTxtProgressBar(p_bar, i / n) > } > close(p_bar) > } > # 1st call > system.time(foo(100)) > # 2nd call > system.time(foo(100)) > # 3rd call > system.time(foo(100)) > #------------------------------ > > > My R versions: > > "Old" Rgui.exe > R version 4.1.2 (2021-11-01) > Platform: x86_64-w64-mingw32/x64 (64-bit) > Running under: Windows 10 x64 (build 19044) > > "New" Rgui.exe > R version 4.2.0 (2022-04-22 ucrt) > Platform: x86_64-w64-mingw32/x64 (64-bit) > Running under: Windows 10 x64 (build 19044) > > > ------------------------------------------------------------------ > Fachhochschule Nordwestschweiz FHNW > Hochschule f?r Wirtschaft > Institute for Competitiveness and Communication > Empirische Wirtschafts- und Sozialforschung > > Prof. Dr. Tobias Schoch > Riggenbachstrasse 16 > CH-4600 Olten > Schweiz / Switzerland > ------------------------------------------------------------------ > T +41 62 957 21 02 > Mail tobias.schoch at fhnw.ch > http://www.fhnw.ch/de/personen/tobias-schoch > > ______________________________________________ > R-devel at r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel