We can probably figure out how to make it faster. *Something* is being executed gazillions of times which should only be done occasionally.
In keeping with "true git development style", I advise removing the feature from the main -devel branch and spinning off a branch devoted solely to developing the feature.
Without looking at the code, my first guess is that the connections information is being updated too often. (At most it should be updated when a new road is constructed -- possibly only once a month.) My second guess is that the data is being stored in an way which makes it slow to access (since it has to be accessed very, very often). My third guess is that there's a bug and the code is just spinning doing nothing somewhere you haven't spotted.
Can you pin the slowdown down to a specific bit of code change? Which commit was it? Was it this one:
commit 9f9907dc7b9136d6ca14d4772f8b6e7f88d2c236
Author: James E. Petts <jamespetts@yahoo.com>
Date: Mon Apr 26 11:13:40 2010 +0100
FIX: Correct mathematics of the calculation of private car average speeds.
CHANGE: Use recorded car journey time to compare against players' transport's travelling times rather than speed bonus rating for road transport when p****engers decide whetehr to take their car or players' transport.
CHANGE: Average speed of private cars in any given month is now weighted by their chance factor.
Or was it this one?
commit fcdf6e25ac765915bcf993f6c5717858adb03a9b
Author: James E. Petts <jamespetts@yahoo.com>
Date: Mon Apr 26 12:59:29 2010 +0100
FIX: Industry and attraction road connexions now work properly.
Or was it something else?
EDIT: Oho, it was this one, wasn't it?
commit 3f455b2f4278f443d75f0b22e78374a0ccddd2b5
Author: James E. Petts <jamespetts@yahoo.com>
Date: Mon Apr 26 02:29:35 2010 +0100
CHANGE: p****enger_max_wait is now a uint32 value, and the default is increased to 19440
ADD: Private car trips can only be made where there is a road connexion between the origin and the destination. The approximate average speed of that connexion is measured and used when determining whether a private car trip is made.
CHANGE: If "quick_city_growth" is enabled, the renovation percentage is automatically reduced by a factor of 3.
CHANGE: Refunds are based on 1.5x not 2x of the straight line journey distance.
That's a little hard to revert since it's got all those other changes mixed up in it. (I was taught the "One conceptual change per commit" rule when working on GCC.)
Apart from that, nothing beats actually profiling the code and finding out which subroutines are having the most time spent in them, and which are getting called the most often. Do you have a profiler under Windows?
I will also say that I haven't seen a slowdown yet under Linux, and I'm running HEAD of jp-devel, so the problem may be optimized away by GCC. Unfortunately, I'm also getting a repeatable crash, which I will report in a different message....