powered by simpleCommunicator - 2.0.55     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему в .Net такие убогие коллекции?
4 сообщений из 379, страница 16 из 16
Почему в .Net такие убогие коллекции?
    #38696169
kmaw
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
cdtyjvЯ понимаю, почему адепты дотнета искренне не понимают, зачем нужен перфоманс: вы просто дальше обычных корпоративных сайтиков ничего не видели, и не разрабатывали. Окей, расскажу.

Я разрабатываю коробочный продукт. Потенциальные покупатели оценивают его по ряду характеристик, которые условно можно разделить на качественные и количественные.
Качественные характеристики - это что бы в продукте был заявленный функицонал, что бы не вылетали ошибки, что бы его можно было легко конфигурировать, и т.д..
Количественные характеристики - это его скорость (читай - операций в секунду) и потребление памяти на стандартных наборах данных.

Когда кому-то нужен этот продукт, он сначала шерстит рынок, и находит предварительно подходящие варианты. Потом на этапе предварительного эвалуэйшена откидывает откровенный шлак. Оставшиеся вендоры подвергаются тестированию. Как правило, с качественными характеристиками все более менее на одном уровне. Возьмите Thrift, Protobuf и Avro, и посмотрите на то, что они умеют. Этого за глаза хватает подавляющему большинству кастомеров. Поэтому наиболее интересным этапом отбора является количественное тестирование, когда юзеры начинают гонять данные и смотреть на следующие вещи:
- загрузку сети
- загрузку процессора
- скорость передачи полезной информации
- количество операций в секунду
- нагрузку на память.

И когда вы к ним придете со своим несчастным SOAP, и покажите результат в несколько раз хуже других, ибо даже дураку понятно, что XML будет работать медленнее практически всего, то ни про какие premarute optimization вы им даже заикнуться на успеете, так как с вами просто перестанут разговаривать, и выкинут из конкурса.

Вы же смотрите на вещи со стороны прикладного программиста, который сидит в каком-нибудь банке, и пилит очередную унылую учетную систему. Конечно, вашему супер-пупер решению, где бухгалтерша посылает отчетик раз в пятилетку, не нужна никакая скорость. Вам этого XML хватит за глаза на годы вперед. Но, представьте себе, есть и другие проекты, где нужна максимальная скорость. Например, высокоскоростная торговля. Пойдите-ка и расскажите им про свой XML и premature optimization.

Так что не пишите ерунды про "берлоги" и "быстрый XML", вы тем самым выставляете себя дилетантами. Лучше расширяйте свой кругозор.
У того, чем сейчас занимаюсь я, цель простая - он должен порвать по скорости конкурентов, которых как минимум 4 штуки.

есть еще кто-то не знакомый с 1С?
...
Рейтинг: 0 / 0
Почему в .Net такие убогие коллекции?
    #38714689
Arm79
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут ссылку ( часть 2 ) интересную в тему нашел, про коллекции в .Net

кто-нибудь использует или использовал в работе С5?
...
Рейтинг: 0 / 0
Почему в .Net такие убогие коллекции?
    #38714749
Фотография Алексей К
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Arm79Тут ссылку ( часть 2 ) интересную в тему нашел, про коллекции в .Net

кто-нибудь использует или использовал в работе С5?
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
[TestMethod]
public void InaugurationDay()
{
  IList<String> names = new ArrayList<String>();
  names.AddAll(new String[]
    { "Hoover", "Roosevelt", "Truman", "Eisenhower", "Kennedy" });
  names.ItemsAdded +=
    delegate (Object c, ItemCountEventArgs<string> args)
  {
    testContextInstance.WriteLine(
        "Happy Inauguration Day, {0}!", args.Item);
  };
     names.Add("Neward");
        Assert.IsTrue(names.Contains("Neward"));
}

Статья 2013-го года. Автор не знает, что использовать "лямбдовый" синтаксис для описания анонимных методов удобнее. Статья уг.

Настоящая претензия к дотнетным коллекциям заключается в следующем. Они реализованы в safe-коде. Из-за этого происходит лишняя проверка границ массивов. Этого можно было бы избежать, если бы коллекции были реализованы в unsafe, как, например, реализован метод Array.Copy.

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
class List<T>

public T Find(Predicate<T> match)
{
    if (match == null)
    {
        ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
    }
    for (int i = 0; i < this._size; i++)
    {
        if (match(this._items[i])) // <= тут лишняя проверка.
        {
            return this._items[i]; // <= и тут лишняя проверка.
        }
    }
    return default(T);
}
...
Рейтинг: 0 / 0
Почему в .Net такие убогие коллекции?
    #38714776
Фотография ЕвгенийВ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Алексей К,
Так было бы круче...
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
 public T Find(Predicate<T> match)
{
	if (match == null)
	{
		ThrowHelper.ThrowArgumentNullException(ExceptionArgument.match);
	}
	for (int i = 0; i < this._size; i++)
	{
    var tmp = this._items[i];
		if (match(tmp))
		{
			return tmp;
		}
	}
	return default(T);
}
...
Рейтинг: 0 / 0
4 сообщений из 379, страница 16 из 16
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Почему в .Net такие убогие коллекции?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]