created an attachment (id=164340)
report file

i have created a simple report with the report desinger. the report has an table with 3 colums (customerno. | name | firstname). my output format is pdf. i tested 5000 rows and i got a pdf file with 125 pages and 215 kb. my dataset has the sql statment
select * from reptest_person where rownum<=5000 there are 5 colums but i only use 3 of them (customerno. | name | firstname).

in my test i used the report engine 2.5.2 with the task "runandrendertask" and i had to wait 329,0 seconds to get the pdf done. i create an comparable report with jasper ireport and used the jasper engine. jasper created the pdf file in 9,7 seconds.

what can i do to make birt faster?

there is an warning message:
08.04.2010 12:51:04 org.eclipse.birt.report.data.adapter.impl.modeladapter adaptdataset
warnung: handle type: org.eclipse.birt.report.model.api.odadatasethandle

can this be the reason why birt is so slow?

computer:
---------
- windows xp prof. sp3
- amd 64 x2 dual, core processor 4000+
- 2.10 ghz, 2,87 gb ram
- java 1.6.0_14

eclipse
--------
- eclipse classic 3.5.2
- eclipse eclipse.ini :

-startup
plugins/org.eclipse.equinox.launcher_1.0.201.r35x_v20090715. jar
--launcher.library
plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200 .v20090519
-showsplash
org.eclipse.platform
--launcher.xxmaxpermsize
256m
-vmargs
-xms128m
-xmx256m


database
---------
- oracle 10g 10.2.
- jdbc driver 10g release 2 version 10.2.0.4


birt
----
- birt runtime release build: 2.5.2
see eclipse community forum:
birt is very slow compared to jasper [message #526081]
i used java visualvm to see where the time gets lost. hotspot - method shows that:

60%  java.net.socketinputstream.read
30%  java.util.concurrent.locks.locksupport.parknanos 
0,9% java.lang.reflect.methode.invole
- all other are smaller than 0,9%

there is another realy strange thing. when i run the java test file on my pc i have to wait about 329,0 seconds. on a second pc the same test runs in 139,7 seconds. this is still slow but the time lag is huge.
created an attachment (id=164386)
solution and problem examples
i found the solution for my problem. in the report file "massdata.rptdesign"  which i added in the first post (see attachment  "report file" reportandjavafiles.zip) there is somthing wrong with the <detail> block in the xml source.



<detail>
    ...
        <data id="120">
            <!-- this is the reason why the generation is slow
            <property name="dataset">person</property>
            <list-property name="bounddatacolumns">
                <structure>
                    <property name="name">rtper_id</property>
                    <expression name="expression" type="javascript">datasetrow["rtper_id"]</expression>
                    <property name="datatype">decimal</property>
                </structure>
                <structure>
                    <property name="name">rtper_nr</property>
                    <expression name="expression" type="javascript">datasetrow["rtper_nr"]</expression>
                    <property name="datatype">string</property>
                </structure>
                <structure>
                    <property name="name">rtper_first_name</property>
                    <expression name="expression" type="javascript">datasetrow["rtper_first_name"]</expression>
                    <property name="datatype">string</property>
                </structure>
                <structure>
                    <property name="name">rtper_last_name</property>
                    <expression name="expression" type="javascript">datasetrow["rtper_last_name"]</expression>
                    <property name="datatype">string</property>
                </structure>
                <structure>
                    <property name="name">rtper_typ</property>
                    <expression name="expression" type="javascript">datasetrow["rtper_typ"]</expression>
                    <property name="datatype">string</property>
                </structure>
            </list-property>
            -->
            
            <property name="resultsetcolumn">rtper_nr</property>
            
        </data>
    ...
    
</detail>





i added in the attachements " solution and problem examples" the file "fastandslowreport.zip". this contains two files. one report is very slow (335.1 sec) and the other is fast (about 18,6 sec). here is the same problem 
...
    <detail>
        ...
            <data id="205">
                <!-- this is the reason why the generation is slow
                <property name="dataset">person</property>
                <list-property name="bounddatacolumns">
                    <structure>
                        <property name="name">rtper_nr</property>
                        <text-property name="displayname">rtper_nr</text-property>
                        <expression name="expression" type="javascript">datasetrow["rtper_nr"]</expression>
                        <property name="datatype">string</property>
                    </structure>
                </list-property>
                -->
                <property name="resultsetcolumn">rtper_nr</property>
            </data>
        ...
    </detail>
...

i am not able to tell where the code comes from. maybe i did to much try and error in the report desinger to create my first reports.
created an attachment (id=165243)
slow and fast report

exampes
i discoverd that when i use a table with a dataset (i.e. person) for all data fields in the table "binding" data set = none. than the report creation process is fast (19.0 seconds). if i bind only one data field with the same data set (i.e. person) like the table than the report creation process is very slow (340.9 seconds).

the diffetence is circa 321.0 sec. this shouldn't happen.
see attachment "slow and fast report"
in your slow report, you defines a nest query in the detail band. the nest query will be executed for each row in the outer table's query.

i think it is the expected behavior as the data set are executed difference times.