davidgohel / ReporteRs

Note that ReporteRs has been removed from CRAN the 16th of July 2018 and is not maintained anymore. please migrate to officer.
245 stars 44 forks source link

OutOfMemoryError when using pptx() in the same R session a couple of times #196

Closed maximebrunet closed 7 years ago

maximebrunet commented 7 years ago

Hi,

I have been working with this great package in a shiny app for some time now, but I am hitting a java OutOfMemoryError error when using it in the same session several times. I am afraid it might create issues in my app once it is deployed on a server. Could you have a look please ? Here is the error and the stack trace: Warning: Error in .jcall: java.lang.OutOfMemoryError: GC overhead limit exceeded Stack trace (innermost first): 77: <Anonymous> 76: stop 75: .jcheck 74: .jcall 73: pptx

Thank you so much for this package, Best

Maxime

davidgohel commented 7 years ago

If not too late, switch to package officer and you won't have this issue.

Do you have a limited set of ressources on your machine? Is the resulting ppt huge?

maximebrunet commented 7 years ago

Precision:

R version 3.3.3 (2017-03-06)
Platform: x86_64-w64-mingw32/x64 (64-bit)
Running under: Windows 7 x64 (build 7601) Service Pack 1

locale:
[1] LC_COLLATE=German_Germany.1252  LC_CTYPE=German_Germany.1252    LC_MONETARY=German_Germany.1252 LC_NUMERIC=C                   
[5] LC_TIME=German_Germany.1252    

attached base packages:
[1] stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] gdtools_0.1.4       stringi_1.1.5       stringr_1.2.0       ReporteRs_0.8.8     ReporteRsjars_0.0.2 mailR_0.4.1         data.table_1.10.4  
 [8] zoo_1.8-0           scales_0.4.1        dplyr_0.5.0         reshape2_1.4.2      ggplot2_2.2.1       lubridate_1.6.0     plyr_1.8.4         
[15] CriteoR_1.1         rCharts_0.4.5       shiny_1.0.2        

loaded via a namespace (and not attached):
 [1] purrr_0.2.2          iptools_0.4.0        rJava_0.9-8          lattice_0.20-34      colorspace_1.3-2     htmltools_0.3.5      yaml_2.1.14         
 [8] base64enc_0.1-3      R.oo_1.21.0          DBI_0.6-1            R.utils_2.5.0        RColorBrewer_1.1-2   munsell_0.4.3        gtable_0.2.0        
[15] R.methodsS3_1.7.1    labeling_0.3         knitr_1.15.1         extrafont_0.17       httpuv_1.3.3         chorddiag_0.1.1      Rttf2pt1_1.3.4      
[22] Rcpp_0.12.10         readr_1.1.0          xtable_1.8-2         RJDBC_0.2-5          jsonlite_1.4         mime_0.5             ISOcodes_2016.12.09 
[29] hms_0.3              png_0.1-7            digest_0.6.12        getPass_0.1-1        RJSONIO_1.3-0        grid_3.3.3           tools_3.3.3         
[36] bitops_1.0-6         magrittr_1.5         lazyeval_0.2.0       RCurl_1.95-4.8       tibble_1.3.0         AsioHeaders_1.11.0-1 whisker_0.3-2       
[43] extrafontdb_1.0      xml2_1.1.1           rvg_0.1.3            assertthat_0.2.0     officer_0.1.1        R6_2.2.0             igraph_1.0.1     
maximebrunet commented 7 years ago

Ok I will consider it but it might be too late for the rest of my team.

Not specially, 602KB initially, but then filling it with a lot of slides and graphs. And no 8gb machine. Ouputs a 800kb file at each run

davidgohel commented 7 years ago

Are you using lot of vector graphics?

maximebrunet commented 7 years ago

Yes all of them

davidgohel commented 7 years ago

Workaround would be to use addPlot(vector.graphic = FALSE) when possible, to not output all plots as vector graphics.

maximebrunet commented 7 years ago

Actually this is a wanted feature to have editable graphs

davidgohel commented 7 years ago

OK,

Then given the fact that no workaround can be found, you must use a machine with more ressources.

David

maximebrunet commented 7 years ago

I do not think that would solve the problem, there is 1,5 GB left of RAM when the problem occurs. I thought about splitting the pptx, but the whole pptx() feature of the package because unusable when you reach the limit. It seems the memory allocated to the java process is restricted in some way.