Внедрить IEnumerable
. См. Использование итераторов (Руководство по программированию на C #)
В вашем случае вы можете просто использовать встроенный итератор List
следующим образом:
using System;
using System.Collections.Generic;
class csWordSimilarity : IEnumerable {
public int irColumn1 = 0;
public int irColumn2 = 0;
public int irColumn3 = 0;
public int irColumn4 = 0;
public int irColumn5 = 0;
public IEnumerator GetEnumerator() {
return (new List() {
irColumn1, irColumn2, irColumn3, irColumn4, irColumn5
}).GetEnumerator();
}
System.Collections.IEnumerator System.Collections.IEnumerable.GetEnumerator() {
return GetEnumerator();
}
}
Это зависит от того, какое приложение Вы создаете. Создайте представительный сценарий тестирования и начните усердно работать. Затем Вы будете знать категорический ответ.
Помимо Вашего варианта использования, это также зависит от ЦП, памяти, системной шины, операционной системы, параметров кэширования, и так далее.
Серьезно, просто протестируйте свой собственный сценарий.
, Если Вам нужны некоторые числа (который на самом деле ничего не может означать в Вашем сценарии):
Я сильно соглашаюсь с точкой зрения Daan: создайте тестовую программу и удостоверьтесь путь, которым она получает доступ к имитаторам данных максимально тесно шаблоны, которые Вы ожидаете, что Ваше приложение будет иметь. Это чрезвычайно важно с BDB, потому что различные схемы доступа приводят к совсем другой пропускной способности.
Кроме этого, это общие факторы, которые я нашел, чтобы быть основного влияния на пропускную способность:
Метод доступа (то, которое в Вашем случае я предполагаю, является B-ДЕРЕВОМ).
Уровень постоянства, с которым Вы настроили DBD (например, в моем случае флаг среды 'DB_TXN_WRITE_NOSYNC' улучшил производительность записи порядком величины, но это ставит под угрозу постоянство)
рабочий набор помещается в кэш?
Количество Чтений По сравнению с Записями.
, Насколько распространенный Ваш доступ (помнят, что B-ДЕРЕВО имеет блокировку уровня страницы - настолько получающие доступ различные страницы с различными потоками являются большим преимуществом).
Схема доступа - meanig, как, вероятно, потоки, чтобы заблокировать друг друга или даже зайти в тупик, и что является Вашей политикой разрешения мертвой блокировки (этот может быть уничтожителем).
Аппаратные средства (диск & память для кэша).
Это составляет следующий момент: Масштабирование решения на основе DBD так, чтобы это предложило больший параллелизм, имеет два ключевых способа идти об этом; или минимизируйте количество, привязывает Ваш дизайн, или добавьте больше аппаратных средств.
Разве это не зависит от аппаратных средств, а также количества потоков и материала?
я сделал бы простой тест и выполнил бы его с увеличивающимися объемами стука потоков и видел бы то, что кажется лучшим.
Что я сделал, когда работа против базы данных неизвестной производительности должна была измерить срок выполнения работы на моих запросах. Я продолжал повышать количество потока, пока срок выполнения работы не отбросил, и отбросить количество потока до улучшенного срока выполнения работы (хорошо, это были процессы в моей среде, но безотносительно).
были скользящие средние значения и все виды включенных метрик, но урок на дом был: просто адаптируйтесь к тому, как вещи работают в данный момент. Вы никогда не знаете, когда DBAs улучшит производительность, или аппаратные средства будут обновлены, или возможно другой процесс придет для перегружения системы, в то время как Вы работаете. Поэтому адаптируйтесь.
, О, и другая вещь: избегайте переключателей процесса, если Вы можете - пакетные вещи.
<час>, О, я должен ясно дать понять это: это все произошло во время выполнения, не во время разработки.
Путем я понимаю вещи, Samba создал tdb для разрешения "нескольких параллельных устройства записи " для какого-то конкретного файла базы данных. Таким образом, если Ваша рабочая нагрузка имеет несколько устройств записи, Ваша производительность может быть плохой (как в, проект Samba принял решение записать свою собственную систему, по-видимому, потому что это не было довольно производительностью DB Беркли в этом случае).
, С другой стороны, если Ваша рабочая нагрузка имеет много читателей, то вопрос состоит в том, как хорошо Ваша операционная система обрабатывает несколько читателей.