|
0 / 0 / 1
Регистрация: 25.06.2017
Сообщений: 69
|
||||||
Распределить нагрузку на 6-ядерный CPU28.12.2018, 12:03. Показов 3083. Ответов 41
Метки нет (Все метки)
Уважаемые программисты, помогите примером кода.
0
|
||||||
| 28.12.2018, 12:03 | |
|
Ответы с готовыми решениями:
41
Снять нагрузку с CPU Узнать нагрузку CPU/RAM 4-8 ядерный CPU для Gigabyte GA-965GM-S2 |
|
Модератор
|
|||
| 28.12.2018, 18:02 | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 28.12.2018, 18:11 | ||
|
Элд Хасп, Ага типа выбирая в комбобоксе ключ? Не похоже. Больше похоже на выборку непосредственно для просмотра/редактирования и т.п. Если бы было конвертирование с индексацией оно бы не по ключу выбирало, а разделяло бы записи на поля и строило бы индекс (и сам список возможных ключей как таковой) по значению ключевого поля по ходу пьесы.
0
|
||
|
Модератор
|
|||
| 28.12.2018, 18:30 | |||
|
Это вопрос к Alexandrus2017. Пусть уточнит ТЗ, так как это принципиально разные методы, и требуют разного подхода. Но если даже файл один, а ключ это любой участок строки (используется же метод line.Contains(textBox1.Text)), то БД не даст преимущества перед последовательной побайтовой обработкой файла. И наиболее вероятно, будет уступать в разы по скорости. Единственное где БД даст преимущество, это при серверном расположении файла и обработке файла сразу на сервере.
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||
| 28.12.2018, 19:09 | |||
|
Добавлено через 44 секунды
0
|
|||
|
Модератор
|
|||
| 28.12.2018, 19:31 | |||
|
0
|
|||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 29.12.2018, 01:55 | ||
|
т.е. по большому счету может происходить одно из двух - в 3-ей строке создается буфер и в него копируются символы,а в 6-ой он мувится в список, либо в 3-ей строке запоминается пара итераторов указывающие на буфер потока, а в 6-ой создается буфер и в него копирую символы, которые находятся между этой парой итераторов. Надеюсь у создателей стандартной библиотеки шарпа хватило прямоты ручек сделать один из двух этих вариантов.
0
|
||
|
Модератор
|
||
| 29.12.2018, 02:03 | ||
|
Система при считывании файла создаёт буфер по любому. Но я не об этом буфере говорю. При чтении в массив байт создаётся ещё и управляемый из C# буфер. Это неизменная область памяти в которую поочерёдно записываются блоки информации из файла. При чтении файла в строку. Каждый раз для новой строки выделяется новый участок памяти - это уже замедляет. Но большая проблема - это то, что старые строки отправляются в мусор и там потихоньку аккумулируются. И периодически память от этого мусора очищается. И эти процессы значительно замедляют приложение. И это не просто теория. Я Вам уже писал. В указанной выше теме, это всё проверялось и оптимизировалось. Удалось довести загрузку диска до почти 100% используя именно чтение файла в массив байт.
0
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
|||||||
| 29.12.2018, 02:20 | |||||||
|
Достаточно просто перенести указатель - т.е. взять его из line добавить в searchResult а в line указатель обнулить. ну типа сделать добавление аналогично вот такому
0
|
|||||||
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
|
| 29.12.2018, 06:30 | |
|
Не по теме: Fulcrum_013, чегой-то вы в этой ветке забыли?) Alexandrus2017, в данном случае, если я правильно понял ТЗ, вам строки нужны только после того, как вы убедитесь, что они подпадают под критерии поиска. Я рекомендую завести небольшой пул буферов (возможно завёрнутых в своё простое представление строки) в которые и читать данные из файла. И поиск подстроки в этом буфере совершать своими силами. И преобразование этого буфера в строку (для сохранения в результатах поиска) производить только после подтверждения наличия в нём подстроки искомой. Memory pressure будет нулевой. Fulcrum_013, ваш фрагмент кода подразумевает создание новой строки на каждой итерации цикла, так что ничем это не лучше того, что в коде на C# выше показано ТС-ом.
0
|
|
|
Модератор
|
|||
| 29.12.2018, 10:13 | |||
|
Зачем все эти извращения, выдумки, если есть возможность сделать нормальный байтовый буфер, который поддерживается из "коробки"? Тот приём который Вы показали, возможно сделать на C# как буфер типа MemoryStream. Но это будут всё равно дополнительные накладные расходы по сравнению с байтовым буфером. Попробуйте сами поэкспериментируйте. Но с БОЛЬШИМ файлом - заведомо большим чем доступное ОЗУ. Добавлено через 3 минуты Для данного случая - последовательной проверки не связанных друг с другом строк хватает пула из байтов размером с самую длинную строку.
1
|
|||
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
||
| 29.12.2018, 10:17 | ||
|
Элд Хасп, я понял его задумку. Имеется в виду, что раз выделять строку, то можно её внутренний буфер перетащить в другое место. Т.е. аллокацию один раз произвести. Но это в С++. И мне не совсем понятно, где будет располагаться внутренний буфер строки. Если там же, где и сам объект строки (в стёке), то совет - говно полное.
С другой стороны, нам строка нужна только при выполнении условия, а Fulcrum_013 предалагает строки аллоцировать каждый раз, что тоже фигня. Буфер, выделенный заранее, - наше всё. ![]() Добавлено через 2 минуты ReadOnlySequence<T> и прочее.
0
|
||
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
|
| 29.12.2018, 10:27 | |
|
0
|
|
|
Модератор
|
||
| 29.12.2018, 10:33 | ||
|
Насколько помню, в C# создаётся пул строк-констант и при создании новой строки проверяется наличие такого же значения в пуле. Если нет, то до дополняется пул, если есть то присваивается ссылка на уже имеющуюся. Или я с чем-то путаю?
0
|
||
|
14821 / 9605 / 1369
Регистрация: 21.01.2016
Сообщений: 36,158
|
||||||
| 29.12.2018, 10:59 | ||||||
|
Элд Хасп, проверьте сами:
1
|
||||||
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
|||||||
| 29.12.2018, 11:20 | |||||||
2
|
|||||||
|
|
|||||||
| 29.12.2018, 11:29 | |||||||
|
Пример:
2
|
|||||||
|
907 / 664 / 318
Регистрация: 23.10.2016
Сообщений: 1,543
|
||
| 29.12.2018, 11:54 | ||
|
Рихтер:
2
|
||
|
2083 / 1576 / 169
Регистрация: 14.12.2014
Сообщений: 13,614
|
||
| 29.12.2018, 15:40 | ||
|
0
|
||
|
Модератор
|
||
| 29.12.2018, 16:12 | ||
|
0
|
||
| 29.12.2018, 16:12 | |
|
Возможно ли распределить нагрузку между 2 компьютерами
Распределить нагрузку веб-сервера с помощью Squid и Apache Рассуждение: как распределить нагрузку на сервер и сеть с наименьшими потерями? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|
Красочные поля с номером страницы svg+background-image
russiannick 04.11.2026
Красочные поля с номером страницы не менее важны чем в эпоху бумажных книг.
Посему спешу представить почтеннейшей публике этот важный инструмент который эти поля и формирует.
В процессе разработки. . .
|
Вступаем в новую фазу генерации favicons, векторную.
russiannick 02.11.2026
Теперь нет нужды скрывать что используется простой svg. Исходный код изображения помещаем в поле и жмем кнопку. Исходник преобразуется в вид корректный для помещения в favicon или в url(). Нажатие. . .
|
Генератор паролей (вариант №4)
Maks 01.11.2026
После публикации 3-го варианта генератора паролей, разослал его своим коллегам (с целью оценки), в итоге были получены следующие рекомендации:
1. Вернуть возможность использования знаков | 1 l I;. . .
|
|
Генератор паролей (вариант №3)
Maks 30.10.2026
Финальная версия генератора паролей 1С.
Доработка решения в этот раз коснулась только визуальной части, а именно, добавлен реквизит ДопПараметры (тип Булево), который скрывает/ отображает реквизиты:. . .
|
Магическое мышление и магия, современная наука не отличима от магии (говорит ИИ Джемени)
zorxor 30.10.2026
Джемени, расскажи, пожалуйста, что такое магическое мышление, что такое магия, почему современная наука чем-то напоминает магию?
Фраза «Любая достаточно развитая технология неотличима от магии». . .
|
За какое время ИИ может подобрать пароль по хешу (рассказывает Джемени ИИ)
zorxor 30.10.2026
Расскажи, Джемени, если известен хэш МД5, например, за сколько ИИ сможет подобрать соответствующий пароль?
Искусственный интеллект (ИИ) может подобрать простой или средний по сложности пароль по. . .
|
Кто убил Suno? Почему наше солнышко погасло? (диалог с ИИ Джемени)
zorxor 30.10.2026
Как убивали Suno. Хронология.
«Убийство» музыкальной нейросети Suno — это затяжной процесс, в котором технологический хайп стартапа разбился о жесткую реальность судебных исков от гигантов. . .
|