drtimcooper / LatLongToTimezone

Lat/long to timezone mapper in Java. Does not require web services or data files - just pure Java or Swift.
MIT License
169 stars 33 forks source link

Very slow swiftc compile times #11

Closed jamieomatthews closed 5 years ago

jamieomatthews commented 8 years ago

Hello,

I've noticed that the library compiles very slowly in release. Surprisingly its not so bad in debug, but the release optimizations swift tries to do slows this down pretty good. To make matters worse, my project has multiple targets that all use it - which makes it even worse.

Is there any chance we could get a c/c++ version of the library? Or are there instructions somewhere on how to generate a new version?

2ndCharter commented 8 years ago

There is a C# version which you could convert to C/C++. I'm afraid I myself don't know enough about compiled C flavors to do it but I'm sure it would be a welcome addition if you would like to tackle it.

jamieomatthews commented 8 years ago

I think the author uses a mapping, so I think the way to go would be directly to c, rather than to convert the C#.

I found some extra information in documentation.txt

2ndCharter commented 8 years ago

Right, I meant use the C# as your programming starting point.

Best regards,

Steve

On Aug 2, 2016, at 3:33 PM, Jamie Matthews notifications@github.com<mailto:notifications@github.com> wrote:

I think the author uses a mapping, so I think the way to go would be directly to c, rather than to convert the C#.

I found some extra information in documentation.txt

You are receiving this because you commented. Reply to this email directly, view it on GitHubhttps://github.com/drtimcooper/LatLongToTimezone/issues/11#issuecomment-237017410, or mute the threadhttps://github.com/notifications/unsubscribe-auth/ACVcJuobOSEwkTQ2DsGryZpUZyGh9Ml9ks5qb5uIgaJpZM4Ja7mR.

akirmse commented 8 years ago

The Swift output was pretty straightforward to add. I've also noticed very slow release build times. It might be possible to rearrange the code so that it compiles faster. Without more knowledge of the compiler, though, it would be trial and error.

I don't have a need for C++ output, so I wouldn't want to maintain it, but if you're willing to take that on I could probably write a first version.

theontho commented 8 years ago

Swift is pretty slow to compile in general, it's fairly hard to escape for now.

You can make an objective-c version, it will run about as fast but it will compile significantly faster and give you a smaller binary size.

I made a script / version that splits up the file into multiple files, so xcode doesn't choke on opening it: https://github.com/mahyar/split-up-timezone-mapper