|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||||||||
Ботлнек String/StringBuilder22.11.2020, 08:42. Показов 11558. Ответов 220
Метки нет (Все метки)
обсуждение, начавшееся в другой теме переношу сюда. Самой тяжёлой является операция:
Получается для файла в 4 мб (гигабайты я пока использовать не стал) это 4*70000=280000 Мбайт чтения и поменьше записи в памяти. Возможно стоит перевести на массив byte[] или ulong[] и делать замену вручную. Добавлено через 10 минут StringBuilder также не является потокобезопасным, поэтому его работа с параллельными потоками недопустима.Видимо нельзя
0
|
||||||||
| 22.11.2020, 08:42 | |
|
Ответы с готовыми решениями:
220
List<string, string, string> есть ли в C# что-то подобное? StringBuilder и регулярки Подскажите как дешифровать текст с использованием StringBuilder |
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|||
| 23.11.2020, 19:04 [ТС] | |||
1234567890в словарь попадает 123при этом в реальности должны были попасть 123например. К несчастью для меня, я не могу озвучить критерии отбора ключей. Поэтому это одиночное плавание, а зная мои способности оно будет дооооолгим. Но вы и так помогли очень много.
0
|
|||
|
Just Do It!
|
||
| 23.11.2020, 19:04 | ||
|
просто намёк на сам принцип, был бы код оформлен как тест, то я бы поучаствовал в вашем соревновании, может быть ![]() а так лень с нуля всё дописывать
0
|
||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|
| 23.11.2020, 19:05 [ТС] | |
|
0
|
|
|
Just Do It!
|
|||
| 23.11.2020, 19:20 | |||
|
если вам надо, чтобы ваш код работал быстро, то вы уже как Полухин с яндекса, который минимум уже 3 года как, пишет каждый раз новый логер для яндекс-такси, который вроде всё быстрее и быстрее предыдущего: Кликните здесь для просмотра всего текста
0
|
|||
| 23.11.2020, 19:25 [ТС] | |
|
0
|
|
|
Just Do It!
|
|
| 23.11.2020, 20:06 | |
|
belalugoci,
имхо, решение должно быть такое: предположу, что ключи в дикшенери и в файле это числовые значения, хотя роли это особой не играет, но просто для того чтобы представлять конкретную реализацию 1. сграбить файл в целочисленный массив Array. 2. ключи-числа также поместить в словарь(это нужно чтобы заюзать бинарный поиск) 3. брать число из Array и проверять его наличие в словаре. 4. если оно там, то присваивать нуль. 5. по окончании всей обработки можно вернуть Array в строку. в чём изюминка? изюминка в быстром бинарном поиске! в вашем примере из шапке бинарный поиск ВАЩЕ не задействован!
0
|
|
|
Модератор
|
|||||||||||||
| 23.11.2020, 20:09 | |||||||||||||
Длина ключа от 1 до 8 передаётся в параметре метода. Добавлено через 23 секунды А вот что дальше с этими ключами надо делать?
1
|
|||||||||||||
|
Just Do It!
|
|||||||
| 23.11.2020, 20:32 | |||||||
|
если оно там, то вроде автор хочет обнулять. словарь тут и не словарь - в крестах можно было бы использовать стл контейнер <set>, смыл в том что оно внутрях отсортировано и можно быстро там искать. Добавлено через 1 минуту Итого:
0
|
|||||||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||||
| 23.11.2020, 20:37 [ТС] | ||||
|
0
|
||||
|
Just Do It!
|
||
| 23.11.2020, 20:43 | ||
|
я всего лишь показал вам эквивалент вашего кода из шапки, который по моей идее должен работать КРАТНО быстрее. Добавлено через 2 минуты я даже не знаю формат вашего файла, а это критично чтобы придумать, как поступить.
0
|
||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|||||||
| 23.11.2020, 20:51 [ТС] | |||||||
|
у меня сейчас заполнение нулями делается так для 1 байта
как ни странно, но вариант с компаратором byte[] работает медленнее, хоть и не сильно, но на файле в 1гб это заметно.
0
|
|||||||
|
Модератор
|
||
| 23.11.2020, 20:52 | ||
|
Если просто заменять все найденные ключи нулями, то ни какой скользящей нарезки не будет. Будет просто деления файла на куски заданного размера. И каждый кусок и будет ключом. То есть из 1234567890 при длине два мы получим про подряд все куски: 12, 34, 56, 78, 90.
0
|
||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|
| 23.11.2020, 20:52 [ТС] | |
|
del
0
|
|
|
6691 / 4102 / 1607
Регистрация: 09.05.2015
Сообщений: 9,576
|
||
| 23.11.2020, 20:53 | ||
|
0
|
||
|
Модератор
|
||||||||
| 23.11.2020, 20:55 | ||||||||
|
Получайте сразу байтовый массив:
То есть байтовый изначально.
0
|
||||||||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|||
| 23.11.2020, 20:56 [ТС] | |||
|
со стороны так и есть.
0
|
|||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
|
| 23.11.2020, 20:57 [ТС] | |
|
0
|
|
|
Модератор
|
||
| 23.11.2020, 21:00 | ||
|
А в замене будут участвовать только указанные мною. Я поэтому и не пойму, зачем считать ключи, которые не будут использоваться в замене?
0
|
||
|
475 / 294 / 29
Регистрация: 01.06.2018
Сообщений: 3,676
|
||||
| 23.11.2020, 21:01 [ТС] | ||||
![]()
0
|
||||
|
Just Do It!
|
||
| 23.11.2020, 21:09 | ||
|
изначально он там и был но с копипастой я промахнулся...
0
|
||
| 23.11.2020, 21:09 | |
|
Невозможно очистить StringBuilder после исключения OutOfMemoryException
Несколько вопросов по примеру из книги по C# про строки (string и String.Format)
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть не большие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
|
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#.
Название изменил на ColorStep.
Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
|
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами:
- ВидТО (СправочникСсылка. ВидыТО);
- ВидГСМ. . .
|
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала.
Ниже прикреплён. . .
|
|
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F
Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU.
Опрашиваются регистры. . .
|
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка:
Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
|
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо
Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
|
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман.
Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
|