Search Home Members Contacts
About Us
Products
Downloads
Community
Support
Pages: [1]
  Print  
Author Topic: Performance issue !!!  (Read 1485 times)
harikumar001
Customers
Community Member
*****
Posts: 65


« on: September 11, 2010, 04:39:43 AM »

Hey Guys,

Have a nice day. Been working on an application for a few months now using TV3D 6.5.
TV3D has been great and I bought a license last month.
Very recently, I tried running my application on a different machine and it felt really slow.
FYI I am using C#.NET for coding.

My program has a decent amount of checking and update tasks to do every iteration, which is slowing it considerably. I have been careful to use proper algorithms and code but there is a lot of checking that needs to be done.

How can I improve performance of my program? Any tips?
Would threads be of any help. Can I separate my application code execution and other windows update activities(App.DoEvents) to different threads. Any help wud be greatly appreciated

Regards
Logged
arnienet
Customers
Community Member
*****
Posts: 263


WWW
« Reply #1 on: September 11, 2010, 06:02:52 AM »

Hi,

I've spent a considerable amount of time optimising my project. These days the dot net framework only accounts for less than a 2% performance hit over c++. Could you give some information on the two machines?

CPU speed?
Graphics Card Specs, memory and if 64 or 128 bit?

What sort of tests are you doing and the poly count for the rendered scene?
How much alpha blending?
Are you using minimeshes, duplicates or loading identical multiple meshes?
« Last Edit: September 11, 2010, 02:55:08 PM by arnienet » Logged

Total Dev time = 50% to code, 50% to test, 50% to find errors, 50% to fix, that's why it takes twice as long.

Dawn World MMO
Mithrandir
Community Member
*
Posts: 325


« Reply #2 on: September 11, 2010, 06:14:38 AM »

Someone wise once said:
"Take all your textures and scale them down to half their size.
If you need more perfomance, repeat this several times."

And use multithreading if possible.
Logged
TroM
Customers
Community Member
*****
Posts: 300


« Reply #3 on: September 11, 2010, 06:39:35 AM »

if you display the 'profiler' it should give you some ideas of what's taking most of the power
Logged
TecnoBacon
Customers
Community Member
*****
Posts: 305


WWW
« Reply #4 on: September 11, 2010, 10:28:40 PM »

Consider interlacing your conditionals (split up your checks among 2 or more frames)

also check your mem allocs, diff machines will handle mem alloc differently (heap, stack, bla bla bla)
Logged

www.TecnoBacon.com - the other side of the Bacon family! 3D Development, Music and more.
harikumar001
Customers
Community Member
*****
Posts: 65


« Reply #5 on: September 13, 2010, 04:29:36 AM »

Thank you arnienet , Mithrandir, TroM, TecnoBacon for your replies  Smiley

2 machine specs where I experience massive change in performance is
1. Desktop PC - Core 2 Duo 2.66Ghz, 2GB RAM, 8600GT 512MB etc (Win XP)
2. Laptop - Core 2 Duo 2.4Ghz, 4GB RAM, 8400GM 128MB (Windows 7)

I find the performance on the laptop terribly slow. So bad that I have to click an object several times to select it, whereas on my Desktop it gets selected in a single click.

Regarding polycount and meshes in the scene, they keep changing. The user selects objects at runtime. But the most basic scene can have 4 walls, a roof and floor generated using AddWall3D function.

Interlacing sounds to be a very good option. Will definitely implement that.

Using threads is another good option, but I will have to select the processes that the threads handle with great care. Just don't want unexpected errors to creep in.

Thanks again guys for your valuable suggestions

Regards



Logged
arnienet
Customers
Community Member
*****
Posts: 263


WWW
« Reply #6 on: September 13, 2010, 03:30:27 PM »

No problem, glad we've all been helpful.

With laptop GFX chips, there are some things to consider:

Generally they are not high performance.
The technology is generally from 2-4 years back, even with high end models.
Even if you do have a market leader GPU (I see you have a nVidia chipset), they generally share memory with the CPU and can be performance inhibited to conserve power. It's worth checking your mains / battery GPU setting to allow for max performance, and allocate max memory.

Also the data bus width (64 / 128 bit) will make a massive difference in performance.

If you have moved from a 128bit nVidia on a home PC to a 64 bit laptop with lower shared memory and power conservation settings, this would account for the performance hit. I'm getting about 180 fps on my dev PC (8400GT / 512mb / 128 bit) but one of my alpha testers is getting only 40fps on his laptop (intel GMA450 or 950 chipset / 256MB). It does however run very smoothly due to game loop optimisations (and the TV3D engine itself of course, credit where it's due Smiley ), so it can be done for sure.

Also it's worth mentioning, if you are checking the mouse state and checking for a mousepick, it is highly likely you are re-performing the test every game loop while the mouse button is down. This works if DX9 can complete the test before the next game loop, however if DX9 couldn't complete the test then it would restart the test at the next game loop. making selection difficult. Try using a boolean value to test for mouse pick only once if the mouse button is continually pressed through successive game loops.
« Last Edit: September 14, 2010, 05:36:12 AM by arnienet » Logged

Total Dev time = 50% to code, 50% to test, 50% to find errors, 50% to fix, that's why it takes twice as long.

Dawn World MMO
Pages: [1]
  Print  
 
Jump to:  

Powered by SMF 1.1.3 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks