Что-то меня вопрос возник, по производительности языков программирования. Каждый язык заточен под свою область применения, отсюда складывается удобство использования (синтаксический сахар) и производительность операций.
Вопрос: Что из популярных языков лучше (быстрее) все обрабатывает тексты: PHP, C++, Go, Java, C# ?
Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов
(Perl наверное выиграет, но же не настолько популярен)
Здравствуйте, comm, Вы писали:
C>Что-то меня вопрос возник, по производительности языков программирования. Каждый язык заточен под свою область применения, отсюда складывается удобство использования (синтаксический сахар) и производительность операций. C>Вопрос: Что из популярных языков лучше (быстрее) все обрабатывает тексты: PHP, C++, Go, Java, C# ?
C>Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов
Вы уверены что производительность главное при разборе текстов?
Здравствуйте, comm, Вы писали:
C>Вопрос: Что из популярных языков лучше (быстрее) все обрабатывает тексты: PHP, C++, Go, Java, C# ? C>Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов
Здравствуйте, comm, Вы писали:
C>Коллеги, добрый день!
C>Что-то меня вопрос возник, по производительности языков программирования. Каждый язык заточен под свою область применения, отсюда складывается удобство использования (синтаксический сахар) и производительность операций.
C>Вопрос: Что из популярных языков лучше (быстрее) все обрабатывает тексты: PHP, C++, Go, Java, C# ?
C>Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов
Работать с текстом удобнее наверное на питоне, тем более что многие тяжелые алгоритмы и библиотки вынесены в скомпилированные либы.
Но если скорости все равно не будет хватать то только C/C++ .
Здравствуйте, kov_serg, Вы писали:
_>Здравствуйте, comm, Вы писали:
C>>Что-то меня вопрос возник, по производительности языков программирования. Каждый язык заточен под свою область применения, отсюда складывается удобство использования (синтаксический сахар) и производительность операций. C>>Вопрос: Что из популярных языков лучше (быстрее) все обрабатывает тексты: PHP, C++, Go, Java, C# ?
C>>Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов _>Вы уверены что производительность главное при разборе текстов?
Когда у меня 150МБ Json исходников разбирается 29 часов, то да, я уверен для меня важная производительность.
Конечно у меня БД есть, оптимизация на ней дала выигрыш, стали обрабатывать за 9 часов. Но многовато.
Здравствуйте, оwl, Вы писали:
оwl>Здравствуйте, comm, Вы писали:
C>>Коллеги, добрый день!
C>>Что-то меня вопрос возник, по производительности языков программирования. Каждый язык заточен под свою область применения, отсюда складывается удобство использования (синтаксический сахар) и производительность операций.
C>>Вопрос: Что из популярных языков лучше (быстрее) все обрабатывает тексты: PHP, C++, Go, Java, C# ?
C>>Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов
оwl>Работать с текстом удобнее наверное на питоне, тем более что многие тяжелые алгоритмы и библиотеки вынесены в скомпилированные либы. оwl>Но если скорости все равно не будет хватать то только C/C++ .
в PHP они же тоже вынесены. Или не настолько?
C/C++ конечно прикольно, но вручную памятью управлять как-то лень. Уже управлял, прямо со своей кучей.
Здравствуйте, Nuzhny, Вы писали:
N>Здравствуйте, comm, Вы писали:
C>>Вопрос: Что из популярных языков лучше (быстрее) все обрабатывает тексты: PHP, C++, Go, Java, C# ? C>>Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов
N>C!
Отличная ссылка! как раз заметил в соседнем треде.
Судя по результатам, с PHP только на C++ двигать 8-(
Здравствуйте, comm, Вы писали:
C>>>Обработка: разбор строк, сравнение, поиск подстроки, поиск строки в массиве, склейка, сериализация объектов _>>Вы уверены что производительность главное при разборе текстов?
C>Когда у меня 150МБ Json исходников разбирается 29 часов, то да, я уверен для меня важная производительность. C>Конечно у меня БД есть, оптимизация на ней дала выигрыш, стали обрабатывать за 9 часов. Но многовато.
У меня на ноуте 5Gb парcятся 10мин на lua. Я подозреваю что у проблема не с парсером, а с записью в базу. Вам следует пройтись профайлером. Или запустить вашу программу без записи в базу и оценить вклад одного и другого. Обычно помогает писать данные в базу группами (begin insert*N1 end)*N2
Здравствуйте, comm, Вы писали:
C>Когда у меня 150МБ Json исходников разбирается 29 часов, то да, я уверен для меня важная производительность. C>Конечно у меня БД есть, оптимизация на ней дала выигрыш, стали обрабатывать за 9 часов. Но многовато.
В таких задачах узкое место ввод-вывод и алгоритмы. Язык дело десятое.
150мб ввобще не те объемы. Тут явно надо алгоритмы тюнить.
Здравствуйте, comm, Вы писали:
C>Когда у меня 150МБ Json исходников разбирается 29 часов, то да, я уверен для меня важная производительность. C>Конечно у меня БД есть, оптимизация на ней дала выигрыш, стали обрабатывать за 9 часов. Но многовато.
Хм.. 150Мб (точно Мб, а не Гб или Тб?) это совсем "детский" размер. Что вы такого делаете с данными? может, здешние старожилы смогут подсказать, как это сделать эффективнее?
P.S. у нас логи приходят по несколько Гб. обычные консольные утилитки разбирают их за секунды (максимум 30-40 секунд на 25Гб).
Здравствуйте, comm, Вы писали:
C>Коллеги, добрый день!
C>Что-то меня вопрос возник, по производительности языков программирования. Каждый язык заточен под свою область применения, отсюда складывается удобство использования (синтаксический сахар) и производительность операций.
По большому счету все равно. Думаю, производительность будет отличаться не больше чем в 2-3 раза, если, конечно, алгоритмы адекватные. Если на Java/C# начать конкатенировать String в цикле — мало никому не покажется .
Ну а синтаксический сахар — это лишь тема для холивара, что удобнее, на суть действий он не влияет
C/C++ должен выигрывать за счет нативного кода и тем самым отсутствия оверхеда на всякие проверки, без которых при корректно написанной программе можно и обойтись.
C>Когда у меня 150МБ Json исходников разбирается 29 часов, то да, я уверен для меня важная производительность.
Можно с полной уверенностью утверждать, что дело не в языке, а в алгоритме. 150 Мб json глотается целиком в оперативную память любой современной машины на ура за десяток секунд максимум. Что после этого делать 29 часов, да даже и 1 час, да даже и 10 минут — не понимаю. Надо либо профилировать это безобразие, либо искать причины путем ручного анализа кода. Например, если там то и дело читаются куски этого json с диска, да еще много раз — можно и больше провозиться.