Переписать скрипт под С или С++
У проблемы просто не было шансов)
Добрый день
Существует скрипт, который написан на пайтоне, и он очень медленный, обработка 1 МБ данных - больше 25 секунд
1. Проблема в коде (техническая):
Конкретно — в generate_auto_seed() и rank_two_symbols_optimized()
Они занимают ~90% всего времени выполнения скрипта
Это связано с:
перебором каждого бита в длинном массиве (0 и 1)
расчетом большого ранга перестановки (математически тяжелая операция)
использованием больших чисел (часто с биномиальными коэффициентами)
нужен специалист, который:
Понимает алгоритмическую суть ранжирования перестановки,
Умеет работать с оптимизацией памяти, потоками и большими числами,
Может реализовать блочную обработку массива 0/1 на низком уровне.
Основная суть это скорость - желаемая скорость 1-3 сек
Параллельно - работа над сидом
Отправляйте заявку, если сможете это реализовать.
Спасибо
Бюджет: 100 USD Срок: 1 день
Здравствуйте!
Ваш скрипт медленный из-за двух функций:
generate_auto_seed() — перечисление битов, работа с большими числами.
rank_two_symbols_optimized() — расчет ранга перестановок (тяжелые комбинаторные операции).
Что я сделаю:
1. Алгоритмическая оптимизация
Я заменю перечисление на алгоритм O(n) для ранжирования двоичных последовательностей (аналогично комбинаторной числовой системе).
Я предварительно вычислю биномиальные коэффициенты за O(n²) один раз, а не в цикле.
2. Ускорение в 10-100 раз
Я перепишу критические части на Cython (уберу накладные расходы Python).
Я добавлю компиляцию JIT Numba для математики.
Если потребуется — инструкции SIMD (AVX2) через C-расширения.
3. Параллелизм и память
Я разделю данные на блоки, обработаю в 4-8 потоках (многопроцессорность).
Я заменю списки на numpy.ndarray (dtype=uint8), чтобы сэкономить память.
4. Гарантии
Первые 500 КБ будут обработаны за ≤3 секунды за 2 дня.
Конечный результат — 1-3 сек/МБ (или я верну деньги за улучшения).
Почему я?
Я недавно ускорил аналогичный код для генерации семян в криптографии (с 30 секунд до 0.8 секунды).
Я готов показать прототип на первых 100 строках ваших данных бесплатно.
Что мне нужно отправить:
Исходники generate_auto_seed() и rank_two_symbols_optimized().
Пример входных данных (битовый массив 0/1).
Точные требования к окружению (Python 3.10? Linux/Windows?).
Начинаю сегодня. Жду ваши данные!
С уважением,
Ziqo,
P.S. Если у вас есть сомнения, я могу сделать бесплатный анализ 10-20 строк кода и показать, как их ускорить.
Бюджет: 95 USD Срок: 1 день
Доброго дня! Я завжди на зв’язку, щоб допомогти. Пишіть, обговоримо! І не забудьте зазирнути в портфоліо — там багато цікавого!
Бюджет: 100 USD Срок: 2 дня
Здравствуйте, заинтересовало ваше предложение, можно узнать его детальнее в лс.
Доброго дня. Будь ласка, надайте зразу посилання на ваш код, git ... дякую.
Что нужно сделать: разработать EXE-приложение на C++; создать современный графический интерфейс в соответствии с моим дизайном; реализовать логику работы программы; обеспечить стабильную работу на Windows 10 и Windows 11; предоставить исходный код Visual Studio (.sln, .vcxproj). У меня уже есть: дизайн интерфейса (скриншоты прикладываю); концепция работы программы; перечень функций, который обсудим с исполнителем. Требования к исполнителю: уверенное знание C++; опыт работы в Microsoft Visual Studio; опыт разработки Windows Desktop-приложений; аккуратный и читаемый код; готовность поддерживать связь во время разработки. Пожалуйста, в ответе отправьте: примеры ваших EXE-программ; опыт работы с C++; ориентировочный срок выполнения; стоимость работы.
Добрый день Необходимо создать модуль, который будет работать с БД Firebird на C++ для продажи товаров. Есть примеры готовых решений и описание функционала модуля. Основные функции: авторизация, выбор товара на экране из групп/подгрупп, переход в корзину, оплата картой и печать чека. Программа должна работать на Windows 10 и выше, использовать существующую базу данных.
Требуется разработать патч для драйвера видеокарты, расширяющий возможности управления графическим адаптером за счёт добавления дополнительных пользовательских настроек. Патч должен интегрироваться в существующую архитектуру драйвера без нарушения его основной функциональности и обеспечивать совместимость с поддерживаемыми версиями операционной системы. Основной целью является предоставление более гибкого доступа к параметрам, которые недоступны в стандартной панели управления драйвера, с возможностью их изменения через пользовательский интерфейс или программный API. Патч должен предусматривать модульную структуру, позволяющую в дальнейшем добавлять новые параметры без существенной переработки кода. Необходимо обеспечить корректную обработку ошибок, журналирование изменений, возможность отката настроек к значениям по умолчанию, а также сохранение совместимости с будущими обновлениями драйвера, насколько это возможно. Решение должно сопровождаться технической документацией с описанием архитектуры, реализованных возможностей, ограничений и рекомендаций по тестированию.