Size: a a a

2020 March 21

DB

Dmitry Belkevich in Delphi & Lazarus
Alexey Kulakov
просто окно редактора ФАРа для заметок, окно для редактора кода, окно для 16ного дампа (или несколько)+ калькулятор для быстрого преобразования 10<->16 и мелкая прога, чтоб 4-байти в single  преобразовывать. да, знаю, кальк, дамп  и преобразование типов можно в отдельной софтине сделать, но заметки всё равно отдельно идут.
я расскажу как у меня разработка часто идёт. 2-3 запущенных делфи. запущенная виртуалка, там линух, там лазарь (бывает два). 2-3 фара для заметок и так всякого, десяток открытых закладок браузера. 3-5 параллельно решаемых задач по запросам от тестировщиков, интеграторов и юзеров. и так - годами. я в общем-то проблем в том не вижу
источник

Р

Рус in Delphi & Lazarus
Dmitry Belkevich
наверно единственный вариант вынести обработку данных в отдельное приложение, которое занималось быть только приемом и обработкой но не гуем и остальным. и то не факт что поможет полностью
Отдельное приложение - а как из этого приложения уже готовые данные получать? Надо очень быстро чтобы получал))
источник

DB

Dmitry Belkevich in Delphi & Lazarus
быстрее всего memory mapped file
источник

DB

Dmitry Belkevich in Delphi & Lazarus
всё остальное будет хуже
источник

DB

Dmitry Belkevich in Delphi & Lazarus
но - дополнительные потоки, думаю, будут проще
источник

Р

Рус in Delphi & Lazarus
Dmitry Belkevich
быстрее всего memory mapped file
быстрее потока?
источник

DB

Dmitry Belkevich in Delphi & Lazarus
сложно сказать
источник

DB

Dmitry Belkevich in Delphi & Lazarus
передастся моментально. вот посчитается ли быстрее - тут вопрос
источник

Р

Рус in Delphi & Lazarus
Dmitry Belkevich
сложно сказать
Ну в принципе я понял. Спасибо!
источник

DB

Dmitry Belkevich in Delphi & Lazarus
если упирается в скорость одного дополнительного потока значит надо делать конвейер из потоков. у нас так сделано
источник

Р

Рус in Delphi & Lazarus
Dmitry Belkevich
если упирается в скорость одного дополнительного потока значит надо делать конвейер из потоков. у нас так сделано
А что у вас так сделано, если не секрет?
источник

DB

Dmitry Belkevich in Delphi & Lazarus
приходят данные. они многопоточно парсятся и результаты парсинга запоминаются в многопоточном массиве записей
вторая пачка потоков копирует тоже многопоточно файлы из временной папки на место
третий поток извлекает данные из массива с распаршенными данными и добавляет эти данные в базу
источник

DB

Dmitry Belkevich in Delphi & Lazarus
идея в том, что бы разбить обработку на независимые части и запустить их параллельно
источник

DB

Dmitry Belkevich in Delphi & Lazarus
когда у тебя процессор забьется на 100% _полезной_ загрузкой - тогда ты можешь сказать что сделал всё что мог
источник

DB

Dmitry Belkevich in Delphi & Lazarus
а до этого есть куда двигаться
источник

Р

Рус in Delphi & Lazarus
Dmitry Belkevich
приходят данные. они многопоточно парсятся и результаты парсинга запоминаются в многопоточном массиве записей
вторая пачка потоков копирует тоже многопоточно файлы из временной папки на место
третий поток извлекает данные из массива с распаршенными данными и добавляет эти данные в базу
Многопоточный парсинг, многопоточный массив - а что это за технология? Есть название, или это чисто архитектурные понятия?
источник

DB

Dmitry Belkevich in Delphi & Lazarus
парсинг - это разбор файлов. он может делаться в одном потоке, но можно его запустить многопоточно что и получилось
источник

DB

Dmitry Belkevich in Delphi & Lazarus
многопоточный массив данных у нас самописанный
источник

DB

Dmitry Belkevich in Delphi & Lazarus
у тебя нужно выделять свои блоки которые можно пытаться запустить многопоточно
источник

Р

Рус in Delphi & Lazarus
Dmitry Belkevich
у тебя нужно выделять свои блоки которые можно пытаться запустить многопоточно
Понял
источник