Форум программистов, компьютерный форум, киберфорум
Разработка и тестирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
6 / 5 / 2
Регистрация: 08.09.2015
Сообщений: 89

Выбор языка. Сортировка файлов

16.11.2020, 17:07. Показов 1964. Ответов 7

Студворк — интернет-сервис помощи студентам
Добрый день!
Просьба дать совет знающим.
О себе - достаточно неплохо программирую на PHP (на мой взгляд), когда-то в консольном варианте пробовал C, Java.
PHP для жизни и работы хватало.

Задача.
На множестве дисков накопилось очень много файлов наверно речь о сотнях тысяч или даже миллионах. В основном фотографии, видео и др. Разобрать вручную практически невозможно. Куча дублей и т.д. и т.п.
Придумал алгоритм, написал программу на PHP, она относительно компактная, но скажем разбор 10 000 файлов идет минут 20 и более. (файлы по нескольку Мб и более). Самый большой минус - идет все в фоне, вывод результатов раз в несколько минут. Но это, все же свойство этого языка и браузеров.

Будет ли все работать быстрее, скажем если использовать C++, C#, Java или что-то другое. Как я понимаю, все же основное время - это работа файловой системы?
И какой язык для этого лучше?

Стандартные готовые продукты вряд ли подойдут, все же алгоритм сильно свой, по специфике моих файлов.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
16.11.2020, 17:07
Ответы с готовыми решениями:

Выбор языка
Добрый день! вкратце объясню суть ключевых моментов в программе, которую мне нужно написать. входные данные: график сотрудников(часы...

Выбор языка
Здравствуйте. Понимаю, что этот вопрос у всех уже поперек глотки стоит, но, однако, ответа я найти так и не могу. Я перечитал уйму...

Выбор языка
Мне нужно написать программу по такой называемой экспертной системе оценки конкурентоспособности. Есть три переменные a b c, каждая из...

7
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,099
16.11.2020, 18:31
Цитата Сообщение от VladRost Посмотреть сообщение
Будет ли все работать быстрее, скажем если использовать C++, C#, Java или что-то другое.
Производительность вашего кода в большей степени зависит от его качества, а не от используемого языка. Грамотный человек может на Питоне написать что-то быстрое, а полный нубас на Си - тормозиллу.

Но если уж сравнивать с языками общего назначения, то лучше использовать C#\Java\Python, а не PHP, который не особо язык общего назначения. Хотя, если вы на этих языках будете писать как на пыхе, то толку от них будет мало...
0
6 / 5 / 2
Регистрация: 08.09.2015
Сообщений: 89
16.11.2020, 19:09  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Производительность вашего кода в большей степени зависит от его качества, а не от используемого языка. Грамотный человек может на Питоне написать что-то быстрое, а полный нубас на Си - тормозиллу.

Но если уж сравнивать с языками общего назначения, то лучше использовать C#\Java\Python, а не PHP, который не особо язык общего назначения. Хотя, если вы на этих языках будете писать как на пыхе, то толку от них будет мало...
Это понятно, что лучше быть богатым и здоровым.
А по существу - код написанный одним человеком будет ли работать быстрее?
Или в данной задаче основное замедление - это работа HDD?

Работа программы с файлами ведется на одном HDD, для ускорения работы.
0
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,099
17.11.2020, 05:35
Цитата Сообщение от VladRost Посмотреть сообщение
А по существу - код написанный одним человеком будет ли работать быстрее?
Перефразирую свой тезис: решает не столько язык, сколько ваши навыки разработки.

Цитата Сообщение от VladRost Посмотреть сообщение
Или в данной задаче основное замедление - это работа HDD?
Я понятия не имею, что и как ваше приложение делает. Как я могу судить, что именно выступает узким горлышком? Работа с HDD никогда скоростью не отличалась, но и помимо этого можно наворотить таких алгоритмов, что тормозной HDD уже не будет казаться таким тормозным.

Разговор не предметный, когда обсуждается абстрактный конь в вакууме) Одно точно могу сказать: описанная задача лучше реализуется на языке общего назначения, а не на PHP потому что:
* многопоточность
* расширенная базовая библиотека классов и\или сторонних пакетов
* отсутствие в необходимости в веб-серверах

Но надеяться на то, что вы просто перепишете на другом языке и оно залетает я бы не рекомендовал. Во-первых, если ваш алгоритм оптимальный и большая часть времени уходит на I\O, то смена языка ничего не даст. Во-вторых, если ваш алгоритм неоптимальный, то смена языка, опять же, ничего не даст, хоть на ассемблере перепишите.

Всё, что даст смена PHP на C#\Java\Python\C++ - это больше возможностей (часть из которых выше перечислил). Но нужны ли они вашему приложению или сможете ли вы ими правильно воспользоваться, этого я не знаю.
1
6 / 5 / 2
Регистрация: 08.09.2015
Сообщений: 89
17.11.2020, 10:41  [ТС]
Цитата Сообщение от Usaga Посмотреть сообщение
Перефразирую свой тезис: решает не столько язык, сколько ваши навыки разработки.
В принципе, я ваш ответ понял так, что смысла заморачиваться нет. Спасибо.

А по перефразированию я понимал свой вопрос так - представьте, что программу пишите вы. 1-ю на PHP, 2-ю C++, C# или Java.
Будет ли выигрыш в смене языка? С учетом, что вы напишите программу идеально и там и там.

Задача выглядит примерно так (моя реализация):
На один HDD (не SSD, обычный), 1-2 ТБ, в папку 1 сбрасываются файлы для обработки. Программа в папке 2 создает подкаталоги по типу файла, времени создания (год+месяц) и перемещает файлы в эти папки. Если там уже есть такой же файл, то исходный либо удаляется, если это он же (я проверял по MD5 файла), либо исходный переименовывается (добавление к имени символа) и перемещается туда же. Плюс проверки по "битости" (испорченности) файла или определенному типу, которые тоже удаляются, либо складируются в отдельную папку для ручной проверки. Пустые папки удаляются и некоторые другие мелочи.
Была еще проверка на одинаковость файлов с разными именами, но пока опустил.
0
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,099
17.11.2020, 11:09
Лучший ответ Сообщение было отмечено VladRost как решение

Решение

Цитата Сообщение от VladRost Посмотреть сообщение
На один HDD (не SSD, обычный), 1-2 ТБ, в папку 1 сбрасываются файлы для обработки. Программа в папке 2 создает подкаталоги по типу файла, времени создания (год+месяц) и перемещает файлы в эти папки. Если там уже есть такой же файл, то исходный либо удаляется, если это он же (я проверял по MD5 файла), либо исходный переименовывается (добавление к имени символа) и перемещается туда же. Плюс проверки по "битости" (испорченности) файла или определенному типу, которые тоже удаляются, либо складируются в отдельную папку для ручной проверки. Пустые папки удаляются и некоторые другие мелочи.
Была еще проверка на одинаковость файлов с разными именами, но пока опустил.
Конкретно такая задача ничего не выиграет от смены языка.
1
Модератор
Эксперт функциональных языков программирования
3134 / 2281 / 469
Регистрация: 26.03.2015
Сообщений: 8,877
17.11.2020, 16:29
Перемещение файлов в пределах одного диска - очень лёгкая (быстрая) операция. Не должно 20 мин работать.
1
Эксперт .NET
 Аватар для Usaga
14122 / 9341 / 1350
Регистрация: 21.01.2016
Сообщений: 35,099
18.11.2020, 08:10
Shamil1, ТС же ещё хеши рассчитывает для файлов.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
18.11.2020, 08:10
Помогаю со студенческими работами здесь

Выбор языка
Я хочу изучить языки программирования С++ и Javascript С чего лучше начать?Или какой нибудь предшествующий?

Выбор оптимального языка
Добрый день, все когда то начинали, подскажите пожалуйста, кому не сложно какой язык выбрать для изучения с нуля. Интересуют следующие...

Выбор языка программирования
Всем доброго дня. Хотел бы изучать язык программирования, но почитав про многие из них окончательно запутался какой мне нужен. Вот, чего бы...

Выбор языка программирования
Всем привет! Хочу написать компьютерную программу по симуляции работы гидравлики. В ее задачи должно входить: - расчет различных...

Выбор языка программирования
Hello, world! Нужна помощь с выбором среды и языка программирования. Познания в программировании - базовые (Паскаль в рамках...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Первый деплой
lagorue 17.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru