| Summary: | Request for parametrizable constants | ||
|---|---|---|---|
| Product: | z_Archived | Reporter: | aszopko <andras_szopko> |
| Component: | BIRT | Assignee: | Birt-Report-inbox <Birt-Report-inbox> |
| Status: | NEW --- | QA Contact: | Xiaoying Gu <bluesoldier> |
| Severity: | enhancement | ||
| Priority: | P3 | CC: | bluesoldier |
| Version: | unspecified | ||
| Target Milestone: | --- | ||
| Hardware: | PC | ||
| OS: | Windows XP | ||
| Whiteboard: | |||
Build Identifier: 20110301-1815 BIRT : v20110214-1523 We have some reports, which cannot be run for huge data sets, because of the memory usage method: the groups are cached as CachedList objects, and these will only be written on the HDD, when count reaches LIST_BUFFER_SIZE. The problem is, that LIST_BUFFER_SIZE is set to 4000, and the 2G Java heap is full before it gets to 1000.... There should be a way to set these numbers for every report. What's more, for some reason the methods setNormalMemoryUsage( ) and setConservativeMemoryUsage( ) set the same values. These constants can be found in the class \plugins\org.eclipse.birt.data\src\org\eclipse\birt\data\engine\cache\Constants.java public static void setNormalMemoryUsage( ) { LIST_BUFFER_SIZE = 4000; MAX_LIST_BUFFER_SIZE = 6000; FACT_TABLE_BUFFER_SIZE = 40000; aggressiveMemoryUsage = false; } public static void setConservativeMemoryUsage( ) { LIST_BUFFER_SIZE = 4000; MAX_LIST_BUFFER_SIZE = 6000; FACT_TABLE_BUFFER_SIZE = 40000; aggressiveMemoryUsage = false; } Reproducible: Always