Math.Sqrt кеширует свои результаты? - PullRequest
2 голосов
/ 16 июня 2010

Кто-то предложил мне, чтобы встроенная функция C # Math.Sqrt в .NET 4.0 кэшировала свои результаты, так что, если я вызываю Math.Sqrt(50) снова и снова, это на самом деле не делает sqrt, а просто вытягивает ответиз кеша.Кто-нибудь может подтвердить или опровергнуть это утверждение?Если это правда, то в моем коде происходит куча ненужного кэширования.

Ответы [ 2 ]

1 голос
/ 16 июня 2010

Я так не верю.

Вы можете попробовать сделать тест, позвонить по номеру Math.Sqrt на 1000 000 различных номеров, а затем на 1000 000 одинаковых номеров, время должно быть примерно таким же.

Можете ли вы взглянуть на отражатель, который показывает вам (по крайней мере, неуправляемые части) функционального кода Math.Sqrt.

Если вам нужен кеш, вы должны создать его самостоятельно с каким-то видомхеш-таблицыОбратите внимание, что вы должны оставить эпсилон, то есть, например, 1.0000000 следует считать равным 1.00000001, в противном случае у вас возникнут проблемы с точностью.

0 голосов
/ 16 июня 2010

У меня не установлен .net 4, но вы можете легко проверить это, просмотрев указанный метод в рефлекторе.
это единственный способ убедиться в том, что происходит.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...