Требуется переименовать 100 000 файлов на сервере. Доступ только по FTP. На каком языке лучше всего написать код? PHP, мне кажется, недостаточно быстр для выполнения подобной задачи. Python? Java?
Всё упрётся в очередь файловой системы, так что в плане выбора япа - брать тот, который лучше знает программист
Если доступ к файлам только по фтп, то все упрется именно в протокол. Так что абсолютно без разницы, можно и на php
куда ж я денусь) --- Добавлено --- проблема не в знании языка, а в том, какой язык по скорости исполнения будет быстрее справляться с поставленной задачей
естественно ассемблер, но писать на нем будет далеко не дешево. Берите любой язык высокого уровня и вперед.
Издержки на ftp-соединение и работу с ним покроют разницу в скорости исполнения на разных языках, поэтому выигрыша от языка видно не будет. Если конечно нет возможности закачать по ftp скрипт, и запустить, чтоб переименовывал себе прямо на сервере
Справедливости для. Не совсем так это уже. Современные компиляторы стали очень умными, и написание узких мест на асме не всегда дает заметный профит. Тем более в таких тривиальных задачах. Если настройки сервера позволяют залить бинарник, сделать его исполняемым я бы написал на С++ в несколько потоков и дернул, например, при помощи php. Но. Это целесообразно если задача не разовая.... Для разовой задачи PHP или баш - как минимум ни какой мороки с компиляцией под ОС сервера, возможными ограничениями по правам ftp и т.п. Если нужна прям скорость скорость: положите все под git. Клонируйте на другой комп, там все сделайте не спеша (кстати раньше far такое умел, даже с использованием регекспов и разных подстановок), и запуште изменения обратно
Не стоит недооценивать php ) К примеру, у нас api отдается через swoole, среднее время отдачи страницы, при условии, что все нужные данные закэшированы не превышает 20-30мс, а обычно и того 10мс. И это с учетом того, что отдает довольно тяжелый laravel. Но на практике, закешировать всё невозможно и потому среднее время ответа стремится к 100мс, потому что приходится стучаться в другие api и делать выборки из БД. В вашем случае, время ожидания сети будет много больше работы самого php, а значит даже если вы замените его на любой другой более быстрый язык, профит всё равно будет сомнительным. Единственное что может реально повлиять на скорость выполнения кейса - несколько потоков переименования. В php тоже можно это сделать, но в том же js или go это будет чуть проще.
А если не секрет, какие параметры сервера? У меня Laravel только бутстрапится, до выполнения моего кода, от 100 на VPS-ках. Даже если сам код а-ля взять модель/вывести модель... Debug Panel показывает, что запросы занимают от силы 10-20 мс.
Ага. Laravel при этом чувствует себя вполне нормально, собственно всё тоже самое, только в HttpKernel подсовывают не один запрос, а несколько. Тут главное, что бы твой код не протекал и swoole будет висеть хоть месяцами )
Надо составить список файлов и распределить на 100 потоков и будет норм. 100к в один поток по ФТП - борода отрастет пока закончится.