Is sqrt still slow in Delphi 2009?

会有一股神秘感。 提交于 2019-12-13 13:24:24

问题


Is sqrt still slow in Delphi 2009?

Are the old tricks (lookup table, approx functions) still useful?


回答1:


If you are dealing with a small set of really large numbers then a lookup table will most always be faster. While if you are dealing with a large set of small numbers then even a slow routine may be faster then maintaining a large table.

I looked in System.pas (where SQRT is located) and while there are a number of blocks marked as licensed from the Fastcode project, SQRT is not. In fact, it just makes an assembly call to FSQRT, so it most likely hasn't changed. So if it was comparatively slow at one point then it most likely still is as slow (although your CPU may be a lot faster and optimized for that now . . . .)

My recommendation is to look at your usage and test.




回答2:


Many moons ago I had an app that computed distance to sort vectors. I realized sorting by the un-sqrt-ed values was the same so I skipped it altogether. Sorted by distance^2 and saved some time.




回答3:


My answer to questions of efficiency is to just apply the simplest method first, then optimize later. Making an operation faster when there's no need for it to be all that fast in the first place seems silly.

I digress, however, since my answer is about efficiency, not the historical aspects of your question.



来源:https://stackoverflow.com/questions/917489/is-sqrt-still-slow-in-delphi-2009

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!