Информация об изменениях

Сообщение Re: Оптимизация строк от 12.04.2019 7:42

Изменено 12.04.2019 7:43 VladCore

Re: Оптимизация строк
Здравствуйте, #John, Вы писали:

J>Здравсвуйте,


J>На ПК-сервере есть 4GB оперативки, .net core приложение.


J>Все эти объекты хранятся в памяти и больше не меняются. Надо соптимизировать поиск данных


Используйте BinarySearch вместо Set-ов и Dictionary. Памяти будет В РАЗЫ меньше, а производительность такая же. String.Intern это второе. Да ещё и один глобюальный на всё.

J> и колличество исспользуемой памяти.


Не храните дважды "одинаковые" стрики и объекты.

J>Есть несколько идей:

J>1. В классе `Bar`, `Name` сделать `int` типом и добавить соответствующий `CoolName` класс.
J>[cs]
J>class Bar {
J> public Name {get; set;}
J>}
J>class CoolName{
J> public int Id {get;set;}
J> public string Name {get; set;}
J>}

Ну так себе. Может жутко тормозить — вы же все гигабайты в ОДНУ коллекцию засуните.
Re: Оптимизация строк
Здравствуйте, #John, Вы писали:

J>Здравсвуйте,


J>На ПК-сервере есть 4GB оперативки, .net core приложение.


J>Все эти объекты хранятся в памяти и больше не меняются. Надо соптимизировать поиск данных


Используйте BinarySearch вместо Set-ов и Dictionary. Памяти будет В РАЗЫ меньше потреблять, а производительность такая же. String.Intern это второе. Да ещё и один глобюальный на всё.

J> и колличество исспользуемой памяти.


Не храните дважды "одинаковые" стрики и объекты.

J>Есть несколько идей:

J>1. В классе `Bar`, `Name` сделать `int` типом и добавить соответствующий `CoolName` класс.
J>[cs]
J>class Bar {
J> public Name {get; set;}
J>}
J>class CoolName{
J> public int Id {get;set;}
J> public string Name {get; set;}
J>}

Ну так себе. Может жутко тормозить — вы же все гигабайты в ОДНУ коллекцию засуните.