Я делаю некоторые пользовательские сериализации, и для того, чтобы сэкономить некоторое пространство, я хочу сериализовать десятичные знаки как int, если возможно, значение мудрое. Производительность вызывает беспокойство, поскольку я имею дело с большим объемом данных. Текущий метод, который я использую:Определить, может ли десятичная цифра быть сохранена как int32
if ((value > Int32.MinValue) && (value < Int32.MaxValue) && ((valueAsInt = Decimal.ToInt32(value)) == value))
{
return true;
}
Можно ли улучшить это?
Вы продолжаете говорить о производительности, но я не вижу никаких критериев или конкретных требований. Откуда вы знаете, что этот метод работает недостаточно эффективно? Насколько вы ожидаете увидеть улучшение? Как вы узнаете, достигли ли вы этого? – Aaronaught
@aaronaught Я не говорю, что этот метод работает недостаточно, но это не значит, что он не может быть более эффективным. Для объема данных, которые я имел, при сериализации и анализе того, что происходит, этот фрагмент кода занимал 4% процессорного времени. Все, что меньше, является улучшением. При этом я не являюсь экспертом по внутренним работам по представлению числа или исполнению IL, поэтому из-за недостатка знаний в этой области может быть место для улучшения. – anchandra
«Производительность» также может быть измерена в зависимости от продолжительности работы. Если он использует только 4% CPU, вы можете многопоточно использовать его для более эффективного использования процессора и завершения работы. Или я неправильно понял, и этот код занял 4% от общего использования ЦП (может быть, около 100%)? –