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

  • Автор темы Автор темы Energizer
  • Дата начала Дата начала

Energizer

Client
Регистрация
19.06.2013
Сообщения
36
Реакции
4
Баллы
8
Вопрос к разработчикам. Интересует вот какой момент. Насколько эффективно у вас организована работа со списками? Например, когда мы перемешиваем список, он ведь структурно скорее всего организован как массив. Так вот при перемешивании происходит перемещение элементов списка в памяти или только указатели на элементы списка меняются? Т.е. если в цикле производить перемешивание массива, как это отразиться на производительности?
 
это C#, для списков используется стандартный List<string>, так что при перемешивании создается копия массива.
для небольших массивов это не критично, для больших накладно по памяти и процу.
опять же если у вас список синхронизированный с файлом, то он существует в единственном экземпляре на все потоки.
если не синхронизированный с файлом, то каждый поток имеет свою копию списка и перемешивание таких списков потратит больше ресурсов, если работать в несколько потоков.
 
Все понятно. Спасибо. Т.е. получается лучше брать рандомную строку из массива N раз, при этом его не перемешивать? И сделать синхронизацию с файлом. Тогда будет одна копия массива на все потоки и память будет расходоваться эффективно. Я правильно понял?
 
Да правильно
 
Спасибо большое. Классный у вас саппорт и отличный софт. Смог разобраться в написании C#-сниппетов сегодня, хотя языка этого почти не знаю. Благодаря вашим советам удалось увеличить количество потоков в 2 раза и скорость постинга возросла раза в 4. :ay:
 
А с котоаватаркой еще 5-7% прироста производительности можно выжать!
 

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