Why it runs so slow?!

I’ve got Gainward GF2Pro/450 - it can draw 30M triangles per second. But in my program it draws only 3M t/s! There are no textures, blending etc; only one light source and one display list that contains only triangles with normals (culling is on).The list is about 1 million traingles put by glInterleavedArrays -> glDrawElements -> >glTraingleStrip,Fan etc.
Memory usage grows up to 220MB, then rapidly up to 400MB, then goes down to 220MB. Why it runs so slow and why memory usage is so strange? My comp. is AMD Duron 650 MHz, 640MB ram (agp aperture=256MB).
Please HELP! (code available - please notify me)

“it can draw 30M triangles per second.”

This phrase should be prefaced with the words, “In theory,” In reality, most video cards can achieve less than half (sometimes less than 1/3) of their theoretical polygon rate.

If you’re really trying to get maximum throughput on your GeForce 2, you will need to use the NV_Vertex_array_range extension and vertex arrays (no more display lists).

Thats only theoretical values, and Duron 650 is a little bit slow for GF2Pro (i think), if you would know the theory about HARDWARE/busses/graphics cards then you wouldnt ask.

Originally posted by Fredy:
Thats only theoretical values, and Duron 650 is a little bit slow for GF2Pro (i think), if you would know the theory about HARDWARE/busses/graphics cards then you wouldnt ask.

Yeah, I know that my CPU is quite slow and that 30Mt/s is just a teoretical value. I don’t expect 30M, but 10-15M should be possibly to achieve.
And a question: My structure (1M triangles) is static - I just want to fly and look at it.
I found some extensions, eg.:
GL_EXT_vertex_array,
GL_EXT_compiled_vertex_array,
GL_EXT_cull_vertex,
GL_NV_vertex_array_range,
GL_NV_vertex_array_range2,
GL_EXT_static_vertex_array
and so on.
Which extensions would you advise me to use?