Форум программистов, компьютерный форум, киберфорум
C# .NET
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
3 / 2 / 2
Регистрация: 24.05.2018
Сообщений: 28

Анализ данных происходит очень долго

14.02.2020, 21:11. Показов 1535. Ответов 18
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, данный вопрос связан с оптимизацией вычислений. Есть проект в котором необходимо пиксели картинки перевести в массив точек со значениями цвета. Алгоритм на данную задачу работает исправно с результатом перевода картинки 14000х9000 пикселей в 2гб текстовый файл данных.

> тут возникает первый вопрос нормально ли работать с (сортировать) данными в текстовом формате через обычные текстовые файлы (запись и чтение в них)?

После эти данные нужно сравнить с исходной таблицей соответствия. При этом при запуске алгоритма сравнения в тестовом режиме приблизительное время полного завершения вычислений составляет целый месяц непрерывной работы компьютера. Алгорим запускался в Visual Studio 19 в нескомпилированном варианте(по той причине, что нужен лишь работающий образец).

соответственно возникают вопросы
> будет ли скомпилированное(оформленное в exe) приложение работать быстрее
> как можно ускорить сравнение
> лучше ли проводить операции в оп памяти
> лучше ли использовать дополнительные средства для этого

C# используется пока только как механизм обладающий необходимым функционалом, поэтому знаний о нем маловато.
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2020, 21:11
Ответы с готовыми решениями:

Долго запускается и долго завершение виндоус 7 происходит
Здравствуйте уважаемые! Такая вот проблемка заменил жёсткий на ноуте. Драйвер винда сама поставила. И этот драйвер мешает нормальному...

При загрузке данных система очень долго загружается
Стоит версия Ubuntu 12.04 при загрузке данных система стала очень долго загружаться, что нужно проверить в этом случае.

Код для загрузки в Excel базы данных работает очень долго
Всем привет ! Есть следующий код для загрузки в EXCEL базы данных но он очень долго работает минуту где-то. Что делать не знаю......

18
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
14.02.2020, 21:50
Цитата Сообщение от Xillmera Посмотреть сообщение
нормально ли работать с (сортировать) данными в текстовом формате через обычные текстовые файлы
Вы работаете с данными в оперативной памяти, а хранить их в текстовом файле - нормально
Цитата Сообщение от Xillmera Посмотреть сообщение
будет ли скомпилированное(оформленное в exe) приложение работать быстрее
Оно уже и так скомпилировано, студия только запускает exe
Цитата Сообщение от Xillmera Посмотреть сообщение
как можно ускорить сравнение
Это надо обсуждать относительного вашего текущего алгоритма
Цитата Сообщение от Xillmera Посмотреть сообщение
лучше ли проводить операции в оп памяти
см выше
1
2621 / 1632 / 266
Регистрация: 19.02.2010
Сообщений: 4,330
14.02.2020, 23:09
Цитата Сообщение от Xillmera Посмотреть сообщение
как можно ускорить сравнение
Нужно сравнивать данные в их исходном виде, а не в текстовом.
1
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
15.02.2020, 17:25
Есть такой формат называется bmp. В нем картинка хранится в виде массива точек со значениями цвета.
Вот с таким форматом надо и работать, а не с текстовым.
Плюс надо смотреть на алгоритм, как он реализован, один и тот же алгоритм можно реализовать разными способами отличающимися по производительности в миллионы раз.
1
3 / 2 / 2
Регистрация: 24.05.2018
Сообщений: 28
18.02.2020, 02:23  [ТС]
Цитата Сообщение от Рядовой Посмотреть сообщение
Оно уже и так скомпилировано, студия только запускает exe
спасибо, этот момент был мне как-раз то не ясен

Цитата Сообщение от VTsaregorodtsev Посмотреть сообщение
сравнивать данные в их исходном виде
хорошая идея, попробую

Цитата Сообщение от nicolas2008 Посмотреть сообщение
формат называется bmp
именно с ним... я и работаю. Только в текст перевожу
0
215 / 149 / 48
Регистрация: 28.12.2016
Сообщений: 716
18.02.2020, 21:47
Xillmera, пробуйте распараллелить процесс и мб подключить доп потоки
1
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
19.02.2020, 00:31
Цитата Сообщение от Xillmera Посмотреть сообщение
Только в текст перевожу
Зачем?
0
3 / 2 / 2
Регистрация: 24.05.2018
Сообщений: 28
20.02.2020, 05:56  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Зачем
- для арифметической обработки данных

(приложенная картинка) вот к примеру цветовое поле, в котором прослеживаются явные зависимости
Миниатюры
Анализ данных происходит очень долго  
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,946
20.02.2020, 07:59
Цитата Сообщение от Xillmera Посмотреть сообщение
для арифметической обработки данных
Арифметика требует исходные данные в текстовом виде? Вы, когда в коде 2 и 2 складываете, тоже это дело в текст переводите?
0
1152 / 860 / 263
Регистрация: 30.04.2009
Сообщений: 3,603
20.02.2020, 09:09
Цитата Сообщение от Usaga Посмотреть сообщение
Вы, когда в коде 2 и 2 складываете, тоже это дело в текст переводите?
Числа на экране выводятся в виде текста. Так что все логично, для того чтобы сложить два числа их сначала надо перевести в текст чтобы было понятно что это за числа.
Может человек пишет систему искуственного интелекта и стремится приблизить образ её мышления к человеческому, а тут вы со своими нравоучениями как работать с числами в ЭВМ.
0
Эксперт .NET
 Аватар для Usaga
14087 / 9305 / 1348
Регистрация: 21.01.2016
Сообщений: 34,946
20.02.2020, 09:17
nicolas2008, причём тут то, как числа представляются на экране?

Цитата Сообщение от nicolas2008 Посмотреть сообщение
Так что все логично, для того чтобы сложить два числа их сначала надо перевести в текст чтобы было понятно что это за числа.
Что?)) Логично для кого? Жителя Нибиру? Уж не обижайтесь)

Безе перевода чисел в текст вам не понятно, что это за числа, да? int a = 2; для вас тайна за семью печатями, пока вы это в текст не переведёте? Серьёзно. Бред же.


Не по теме:

nicolas2008, блин, я подумал, что мне ТС ответил. Не сразу понял сарказма)

0
3 / 2 / 2
Регистрация: 24.05.2018
Сообщений: 28
23.02.2020, 18:09  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Вы, когда в коде 2 и 2 складываете, тоже это дело в текст переводите
так тут проблема в объеме и этапах. С массивом исходным необходимо несколько разных операций проделать, а тут уж без промежуточных остановок в виде текстовых файлов не обойтись.

Ну а на счет сложения тут встает вопрос можно ли без дополнительных действий считать из файла сразу число.
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
23.02.2020, 18:18
Цитата Сообщение от Xillmera Посмотреть сообщение
тут уж без промежуточных остановок в виде текстовых файлов не обойтись
Почему файлы должны быть именно текстовыми?
Чем вызвана необходимость работать именно с текстом, а не с изначальными значениями пикселей?
0
Фрилансер
 Аватар для FateOri
761 / 458 / 146
Регистрация: 06.01.2017
Сообщений: 4,856
23.02.2020, 18:20
Цитата Сообщение от Xillmera Посмотреть сообщение
Алгоритм на данную задачу работает исправно с результатом перевода картинки 14000х9000 пикселей в 2гб текстовый файл данных.
алгоритм секретный?
как можно помочь с оптимизацией если вы код не показываете?))
0
3 / 2 / 2
Регистрация: 24.05.2018
Сообщений: 28
23.02.2020, 20:19  [ТС]
Цитата Сообщение от kolorotur Посмотреть сообщение
Почему файлы должны быть именно текстовыми?
потому что по итогу я собираюсь получить "облако точек" (point cloud), а там нужен либо форматированный текст, либо бинарный файл, с которым к сожалению я не имел знакомств.

Цитата Сообщение от FateOri Посмотреть сообщение
алгоритм секретный? ; как можно помочь ... если ... код не показываете?
Ну, как сказать, вроде нет, но это проект, да еще и получился значительных размеров.
Однако хоть и все части в некоторой степени вычисляются долго конкретные проблемы вызывает определенная часть. [1_kod]

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


функция сравнивает кусок информации из строки обрабатываемых данных, проходит полное сравнение с таблицей соответствия. Если найдено, то записывает в новый файл с добавлением некоторых занчений, в противном не записывает.

были варианты сначала подготовить исходные данные, от таблицы соответсвия. Т.е взять одно значение из нее и искать по всем исходным данным с записыванием в новый файл. Проделав это со всеми пунктами табл.соотв. получится упорядоченный массив, который можно последовательно пройти одним проходом улавливая только смену значений.

PartOfPointToInt() - функция выделяет из строки цифру под номером (при форматировании пробелами)
CopyFromToFile() - копирует содержимое файла в другой (эти строки часто повторяются и в других функциях)


:: [1_kod] ::
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
static void CompareRawPcVsEndedCatalog(string RawPc, string Catalog, string WriteSupport)
{
    using(StreamReader FROM = new StreamReader(RawPc, System.Text.Encoding.Default))
    {
        using (StreamWriter TO = new StreamWriter(WriteSupport))
        {
            string firstLine = FROM.ReadLine();
            int LineCounter=0;
            for (string file_line = FROM.ReadLine(); file_line != null; file_line = FROM.ReadLine())
            {
                int result = -1;
                int[] mainNubersOfLine = new int[3] { PartOfPointToInt(file_line, 4), PartOfPointToInt(file_line, 5), PartOfPointToInt(file_line, 6) };
                using (StreamReader FROMtab = new StreamReader(Catalog, System.Text.Encoding.Default))
                {
                    //int TableLineCounter = 0;
                    for (string catalog_line = FROMtab.ReadLine(); file_line != null ; file_line = FROMtab.ReadLine())
                    {
                        int[] NubersOfLine = new int[3] { PartOfPointToInt(catalog_line, 1), PartOfPointToInt(catalog_line, 2), PartOfPointToInt(catalog_line, 3) };
                        if ((NubersOfLine[0] == mainNubersOfLine[0]) && (NubersOfLine[1] == mainNubersOfLine[1]) && (NubersOfLine[2] == mainNubersOfLine[2])) {
                            result = PartOfPointToInt(catalog_line, 4);
                        }
                        
                        /* показатель процесса работы в командной строке *можно без него
 
                        /*if ((TableLineCounter % 1000)==1)
                            Console.WriteLine(TableLineCounter + " checked from 13000 lines");
 
                        TableLineCounter++;*/
                    }
                }
 
                if (result != -1)
                    TO.WriteLine(PartOfPointToInt(file_line, 1) + " " + PartOfPointToInt(file_line, 2) + " " + result + " " + mainNubersOfLine[0] + " " + mainNubersOfLine[1] + " " + mainNubersOfLine[2] + " ");
 
                if ((LineCounter % 1000) == 1)
                    Console.WriteLine(LineCounter + " hight changed");
                LineCounter++;
            }
        }
    }
 
    CopyFromToFile(WriteSupport, RawPc);
}
0
Эксперт .NET
 Аватар для kolorotur
17823 / 12973 / 3382
Регистрация: 17.09.2011
Сообщений: 21,261
23.02.2020, 20:21
Цитата Сообщение от Xillmera Посмотреть сообщение
по итогу я собираюсь получить "облако точек" (point cloud), а там нужен либо форматированный текст, либо бинарный файл
Так стройте облако уже последним этапом — после всей обработки.
Сразу отпадет проблема гигабайтовых файлов.
1
3 / 2 / 2
Регистрация: 24.05.2018
Сообщений: 28
23.02.2020, 20:26  [ТС]
для понимания >
> исходные данные : 40 мил строк
> табл соответствия : 100 - 400 строк
> время выполнения : по приблизительным расчетам 30 дней

Добавлено через 1 минуту
Цитата Сообщение от kolorotur Посмотреть сообщение
Сразу отпадет проблема гигабайтовых файлов
может быть вы правы, попробую
0
 Аватар для Рядовой
1524 / 914 / 329
Регистрация: 17.05.2015
Сообщений: 3,438
23.02.2020, 21:13
Цитата Сообщение от Xillmera Посмотреть сообщение
время выполнения : по приблизительным расчетам 30 дней
так это отличный алгоритм для майнинга. Им можно закипятить любую видеокарту.
Или зимой сарай отапливать

Добавлено через 2 минуты
Так вы его как 14 февраля запустили, он еще считает?

Добавлено через 1 минуту
Таким кодом можно сообщения в войну шифровать. Через 30 дней данные уже будут не актуальные
0
3 / 2 / 2
Регистрация: 24.05.2018
Сообщений: 28
23.02.2020, 23:30  [ТС]
Цитата Сообщение от Рядовой Посмотреть сообщение
зимой сарай отапливать
а как вы думаете почему в россии эта зима такая теплая - это алгоритм все работает

Цитата Сообщение от Рядовой Посмотреть сообщение
он еще считает
считал, считает и будет считать

Цитата Сообщение от Рядовой Посмотреть сообщение
сообщения в войну
с удовольствием, только в роли штирлица
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.02.2020, 23:30
Помогаю со студенческими работами здесь

Долго еще поживет? Анализ смарта
Всем привет, в подробности вдаваться не хочу что и как за что в смарте отвечает. Скажите норм диск или нет... сколько там система простоит...

Предприятие 1с 8.3 управление торговлей, долго происходит выгрузка
здравствуйте. у меня такой вопрос.к нам приезжал программист, устранял неполадки с весовым прохождением товара, но после этого выгрузка...

SELECT.WHERE.NOT IN – очень долго
Здравствуйте! Имеются таблицы users и photos. users – более 2 миллионов строк. photos – более 250 миллионов строк. Требуется посчитать,...

Очень долго загружается
Здравствуйте. Очень долго загружается BIOS. Материнка: Gigabyte GA-M55plus-S3G Socket AM2 Минут 10 проходит прежде чем войдет в...

Очень долго загружается ПК
Всем привет! ОС Windows XP SP3. Использую для изучения процесса загрузки системы BootVis. Вот её лог (см. вложения). Дело в...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
19
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru