Switch to English?
Yes
Переключитись на українську?
Так
Переключиться на русскую?
Да
Przełączyć się na polską?
Tak
Разместите свой проект бесплатно и начните получать предложения от фрилансеров-исполнителей уже спустя минуты после публикации!

Оптимизация java-модуля

29 078 UAH

  1. 234  
    15 дней40 709 UAH

    Забабахаю.

    !===авыфавыфавы!===авыфавыфавы!===авыфавыфавы!===авыфавыфавы!===авыфавыфавы

  2. 60    1
    30 дней29 078 UAH

    Предлагаю ваши вычисления распараллелить, для этого мне понадобится очень хороший компьютер с как минимум с восемью ядрами на борту. И давайте заложимся на то, что в науке отрицательный результат, это тоже очень хороший результат. :-) Заплатите мне к примеру 30 % стоимости за научные изыскания, если ничего не получится. А если всё получится то 100 %. Я в вашей схеме вызовов менять ничего не буду, потому что даже замена Java на С++ даст от силы 5 % скорости, а замена Apache Thrift на FlatBuffers вообще ничего не даст. А новая версия JDK может разве что замедлить вычисления.

    Короче я предлагаю ускорить процесс вычислений за счет дополнительных ядер на борту, то есть за счет увеличения суммарной мощности компьютера. А еще лучше чтобы самих процессоров было 2, а еще лучше четыре, тогда у меня в распоряжении будет 32 ядра. Да там ваши битовые векторы, как пулей будут летать.

    Использовать графический процессор вряд ли получится, так как на сервера редко кто-то ставит
    GeForce RTX 2080 Ti поэтому лучше использовать штатные ядра процессора.

    Программу вашу придется сначала оформить как десктопную и переписать вообще весь алгоритм вычислений.

  3. Еще 4 ставки скрыты
  • Профиль удален
    17 сентября 2019, 13:59 |

    В предыдущем вашем проекте было несколько дополнительных вариантов для оптимизации... Опробовали некоторые? Не помогло?

    Кстати, для PHP ещё можно ваять расширения (напр., на C++) - возможно, это направление тоже пригодится. Хотя если узкое место - в Java-сервисе, то PHP-оптимизация не особо поможет.

  • Профиль удален
    17 сентября 2019, 14:04 |

    Решили отказаться от CUDA, и сосредоточиться на Java / С. 

  • Андрей Местный
    18 сентября 2019, 12:49 |

    В принципе если компьютер стоит в офисе, то можно рассмотреть и CUDA. Факт в том, что у вас нет никакого другого выхода, кроме как дробить задачу на процессоры и нет никакого другого пути ускорить процесс вычисления битовых векторов. Программы на Java и Cи в среднем работают одинаково быстро, так как Си чистый компилятор, а Java JIT компилятор.  Именно поэтому Java почти полностью вытеснила Си из области серверных приложений.  Скорее всего интересующие вас функции, на Java и Си будут выполнятся одинаково быстро.  Но если хотите, то за ваши деньги можно попробовать переписать вашу программу на Си, быть может и увеличим скорость работы вашей программы на 5 %, но не в 4 раза как вы хотите это точно.

  • Александр Ш.
    18 сентября 2019, 12:57 |

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

    https://benchmarksgame-team.pages.debian.net/benchmarksgame/fastest/java-gpp.html


    Вам сейчас тут мамкины аналитики расскажу, что Java и C++ - одинаковы по производительности, максимум 5% разницы.... Бред и абсолютная некомпетентность

  • Андрей Местный
    18 сентября 2019, 13:19 |

    Когда не очень грамотные люди начинают делать всякие тесты, сравнивая скорость работы интерпретатора Java на первом запуске программы с заранее откомпилированной программой на Си. То оно всегда так и получается, можете мне поверить на слово, второй и все последующие запуски одной и той же программы на Java и С++ будут абсолютно одинаковыми по времени. А если процессор не тот, под который компилировалась программа на Си, то JIT программа на Java будет оптимальнее и быстрее. Это я сто раз проверял, для серверных программ JIT компилятор от Java работает быстрее Си. Поэтому я и не использую сейчас нигде Си, устарел он малость и никакого прироста скорости программ компилятор Си не дает. 

  • Профиль удален
    18 сентября 2019, 14:49 |

    второй и все последующие запуски одной и той же программы на Java и С++ будут абсолютно одинаковыми по времени 

    Ваше замечание в контексте тестов весьма уместно - судя по "протоколу", там измерялось "брутто" (включающее затраты JIT-компилятора, загрузку программы в память и проч.). Имело бы смысл сравнить чистое время, потраченное на прикладную задачу.

    Впрочем, предположу, что и в этом случае откомпилированная программа на C++ окажется быстрее, чем откомпилированная программа на Java.

    В целом, каждый может повторить тесты (т.к. исходные коды программ приведены) и провести замеры по своим стандартам 🙂

    PS: сорри за оффтопик 🙂

  • Андрей Местный
    18 сентября 2019, 17:19 |

    Нет JIT программа на Java, будет либо такой же быстрой как и на Си, либо Java программа будет быстрее. Так как Java машина точно знает, что за процессор используется, сколько и какой памяти на борту. Поэтому JIT код Java практически  всегда более эффективен, чем статическая компиляция Cи.  У Java только некоторые функции работают медленнее, чем на C и то максимум на 5 %. Вот если специально вставить в цикл более медленные функции Java, то только тогда можно получить проигрыш в 5 % скорости. А так в среднем JIT компилятор Java создает более быстрые и более эффективные программы чем статический компилятор Си.  Java и Си по скорости выполнения, особенно серверных программ практически никак не отличаются. У Java только первый запуск программы намного медленнее, чем на Си, а дальше JIT компилятор создает либо точно такой же как и Си, либо более эффективный машинный код в машинных командах процессора. 

  • Александр Ш.
    18 сентября 2019, 17:46 |

    Ну, если Вы утверждаете, что использование дополнительного уровня абстракции в виде виртуальной машины может действительно добавить производительности… и при этом ещё и утверждаете, что прога на Java будет ещё и быстрее - то продолжать какой-либо диалог смысла нет.

    Те, кто что-то понимают сделают соответствующие выводы, а кто не понимает, надеюсь, обратятся к правильному специалисту.

    Спасибо за потраченное время 🙂

  • Андрей Местный
    18 сентября 2019, 17:59 |

    Рекомендую вам прочесть литературу как работает JIT компилятор, а то вы тут народ смешите, рассуждая про какую-то абстракцию виртуальной машины Java. JIT компилятор Java создает чистый машинный код, строго оптимизированный под конкретный процессор, ничего эффективнее быть не может.  Java программа может тормозить из-за абстрактного GUI, но как-то не многие умеют щелкать мышкой со скоростью миллион раз в секунду.  GUI да у Java абстрактный и достаточно медленный, но на сервере нет никакого GUI. 

  • Александр Ш.
    18 сентября 2019, 18:02 |

    Как скажете. Я обязательно воспользуюсь Вашими рекомендациями 🙂

  • Андрей Местный
    18 сентября 2019, 18:06 |

    Да кстати, быть может если вы такой уж  большой специалист по Си, то вы нам подскажите верное решение. Как же нам ускорить то сложение бинарных векторов в четыре раза.  Допустим даже что на Си, как нам заставить на Си центральный процессор, выполнять операцию бинарного сложения или вычитания в четыре раза быстрее, чем позволяет тактовая частота процессора. 

  • Профиль заблокирован
    17 сентября 2019, 14:02 |

    уж лучге было бы переидти на node

  • Профиль удален
    17 сентября 2019, 14:03 |

    Можно и node рассмотреть, а как он поможет?

  • Профиль заблокирован
    17 сентября 2019, 14:04 |

    а вы хоть знаете принцип работы node, и почему большенство крупных сайтов перешли на него? все очень просто, оптимизация потока

  • Профиль удален
    17 сентября 2019, 14:06 |

    в данной конкретной задаче как он бы помог? где большие данные будут храниться? кто будет делать необходимые вычисления над ними?

  • Профиль заблокирован
    17 сентября 2019, 14:09 |

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

  • Профиль удален
    17 сентября 2019, 14:13 |

    PHP получать лишь результаты выборки, они очень маленькие. Сами данные и функционал - в Java

  • Андрей Местный
    17 сентября 2019, 15:38 |
    удалено модератором
  • Александр Ш.
    17 сентября 2019, 18:36 |
    удалено модератором
  • Профиль заблокирован
    18 сентября 2019, 9:01 |
    удалено модератором
  • Giorgi Eremiani
    20 сентября 2019, 23:40 |

    Если есть поддержка Intel HD Graphics, можно попробовать распарлаллелить на gpu. Из плюсов, огромный обьем данных не придется катать по шине туда обратно потому что и у центрального и у графический проца общая память, мощность gpu при распарлаллеливании.

Актуальные фриланс-проекты в категории C и C++

Скрипт который будет взаимодействовать по картинке

Нужен скрипт который будет взаимодействовать по картинке + тексту )названию товара на экране) + цене. Проще говоря, скрипт должен нажимать на логотип площадки (слева сверху белый текст) для обновления ассортимента товаров (каждые секунды 3-5), затем должен быть поиск по картинке…

C и C++Python ∙ 8 ставок

Создать телеграмм бота с интеграцией GPT

12 000 UAH

Техническое задание: 1) Создать телеграм бота по примеру, При старте спрашивать язык: - русский -английский Все остальное по примеру первого бота: предложить отправить фото с которого будет взято лицо, второе - попросить видео на которое будет накладываться лицо. Затем в…

C и C++Python ∙ 12 ставок

Настройка обмена данными между jetson nano и другим устройством по can ши

Настроить обмен данными между jetson nano и другим устройством по can шине с помощью RS485 CAN документации и примера здесь: https://www.waveshare.com/wiki/RS485_CAN_for_Jetson_Nano Пакет передаемых данных разбит на фремах размером по 8 байтов, кодирование первых 7 байтов…

C и C++Linux и Unix ∙ 2 ставки

Інфракрасний датчик температури ZigBee

Потрібен Інфракрасний датчик температури з передачею данних через протоколо ZigBee на сервер Home Assistants в MQTT Оборудованіе: Модуль ESP32-C6-WROOM-1-N8 + инфракрасного термометра MLX90614 + добавить светодиод лазер для обозначения где считивается температура

C и C++Встраиваемые системы и микроконтроллеры ∙ 1 ставка

Создать бота в телеграм по парсингу сообщений

785 UAH

Нужно скопировать функционал данного бота - t. me /lead_observer_bot Функционал: 1. забить ключевые слова 2. забить группы, из которых будет происходить парсинг сообщений 3. возможность добавления и удаления слов и групп 4. получение уведомлений о новых сообщениях по ключевым…

C и C++Python ∙ 14 ставок

Заказчик
Профиль удален


Проект опубликован
4 года назад
4 года
271 просмотр
Метки
  • highload