как эффективно подать заявку, средний вес функционируют параллельно

Хороший!

Просто добавил

        s.Start();
        for (var i = 0; i < n; i++)
            result = string.Concat(p.FirstName, " ", p.LastName);
        s.Stop();
        ceElapsedMilliseconds = s.ElapsedMilliseconds;
        ceElapsedTicks = s.ElapsedTicks;
        s.Reset();

, И это еще быстрее (я предполагаю строку. Concat называют в обоих примерах, но первый требует своего рода перевода).

1000000 x result = string.Format("{0} {1}", p.FirstName, p.LastName); took: 249ms - 3571621 ticks
1000000 x result = (p.FirstName + " " + p.LastName); took: 65ms - 944948 ticks
1000000 x result = string.Concat(p.FirstName, " ", p.LastName); took: 54ms - 780524 ticks
12
задан Arthur Ulfeldt 9 November 2009 в 18:33
поделиться

3 ответа

Как насчет использования функции раздела , чтобы разбить последовательность диапазона ? Интересный пост о подобной проблеме был на http://www.fatvat.co.uk/2009/05/jvisualvm-and-clojure.html

6
ответ дан 2 December 2019 в 22:22
поделиться

Если вы этого не сделаете

1
ответ дан 2 December 2019 в 22:22
поделиться

Я бы посмотрел на библиотеку Fork / Join , настроенную для интеграции в JDK 7. Это легкая многопоточная модель, оптимизированная для неблокирующих вычислений по принципу «разделяй и властвуй». набор данных, использующий пул потоков, планировщик, упрощающий работу, и зеленые потоки.

Была проделана некоторая работа , чтобы обернуть API Fork / Join в ветку par , но это не так. t был объединен с основным ( еще ).

0
ответ дан 2 December 2019 в 22:22
поделиться
Другие вопросы по тегам:

Похожие вопросы: