Эффективность работы со списками

Energizer

Client
Регистрация
19.06.2013
Сообщения
36
Благодарностей
4
Баллы
8
Вопрос к разработчикам. Интересует вот какой момент. Насколько эффективно у вас организована работа со списками? Например, когда мы перемешиваем список, он ведь структурно скорее всего организован как массив. Так вот при перемешивании происходит перемещение элементов списка в памяти или только указатели на элементы списка меняются? Т.е. если в цикле производить перемешивание массива, как это отразиться на производительности?
 

darkdiver

Administrator
Команда форума
Регистрация
13.01.2009
Сообщения
2 284
Благодарностей
2 728
Баллы
113
это C#, для списков используется стандартный List<string>, так что при перемешивании создается копия массива.
для небольших массивов это не критично, для больших накладно по памяти и процу.
опять же если у вас список синхронизированный с файлом, то он существует в единственном экземпляре на все потоки.
если не синхронизированный с файлом, то каждый поток имеет свою копию списка и перемешивание таких списков потратит больше ресурсов, если работать в несколько потоков.
 

Energizer

Client
Регистрация
19.06.2013
Сообщения
36
Благодарностей
4
Баллы
8
Все понятно. Спасибо. Т.е. получается лучше брать рандомную строку из массива N раз, при этом его не перемешивать? И сделать синхронизацию с файлом. Тогда будет одна копия массива на все потоки и память будет расходоваться эффективно. Я правильно понял?
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Да правильно
 

Energizer

Client
Регистрация
19.06.2013
Сообщения
36
Благодарностей
4
Баллы
8
Спасибо большое. Классный у вас саппорт и отличный софт. Смог разобраться в написании C#-сниппетов сегодня, хотя языка этого почти не знаю. Благодаря вашим советам удалось увеличить количество потоков в 2 раза и скорость постинга возросла раза в 4. :ay:
 

Lexicon

Client
Регистрация
27.12.2012
Сообщения
1 775
Благодарностей
891
Баллы
113
А с котоаватаркой еще 5-7% прироста производительности можно выжать!
 

Energizer

Client
Регистрация
19.06.2013
Сообщения
36
Благодарностей
4
Баллы
8
И правда!:az:
 
  • Спасибо
Реакции: Lexicon

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)