Задать вопрос
  • Как повысить скорость работы xray+reality?

    Vindicar
    @Vindicar Автор вопроса
    r33, это прописывается для inbound (входящего интерфейса xray) на сервере, и будет верно для всех попыток обратиться к этому inbound. Насчёт BBR - спасибо, гляну.
    Написано
  • Прирост в производительности после переноса алгоритма с Python на C++/C?

    Vindicar
    @Vindicar
    shstkv_a, а тут всё очень сложно, увы. Число ядер необязательно равно числу одновременно работающих потоков. Процессорное время выделяется именно потокам, просто потоки в Питоне всё ещё... того. Неэффективны для вычислений. Приходится воевать с процессами.
    Я бы просто поиграл числом одновременно работающих процессов-воркеров в поисках оптимума, каким бы он не оказался. А дальше уже совершенствовал бы сам воркер.
    И да, посмотри в сторону ссылки на map() выше - незачем самому резать массив на дольки, если можно просто скармливать значения из коллекции воркерам. Ты вполне можешь итерироваться прямо по исходному файлу, отдавая воркеру строку - а дальше пусть он сам всё делает.
    Написано
  • Прирост в производительности после переноса алгоритма с Python на C++/C?

    Vindicar
    @Vindicar
    shstkv_a, я просто задумался, не проще ли было бы пройтись по c_a один раз и составить список пар, кто с кем взаимодействует. А потом уже идти по этому списку. Ну да тебе виднее, будет ли от этого выигрыш.
    Написано
  • Прирост в производительности после переноса алгоритма с Python на C++/C?

    Vindicar
    @Vindicar
    shstkv_a, погоди-ка, а что ты этой конструкцией пытаешься добиться? Найти взаимодействующие пары атомов? или что? Объясни, пожалуйста, смысл данных в c_a.

    Ну и до кучи, у тебя в M = sympy.Matrix(...) довольно брутальные вещи творятся. По стопицот раз вычисляешь синус и косинус одного и того же числа, а это небыстрая операция! Ну и опять же, там numpy вот прям напрашивается...
    Написано
  • Прирост в производительности после переноса алгоритма с Python на C++/C?

    Vindicar
    @Vindicar
    shstkv_a, если решение строки не зависит от решений других строк - то скорее всего можно.
    Проще всего будет, если ты завернёшь решение в функцию, которая принимает простую структуру данных и возвращает простую структуру данных. Скажем, принимает строку из файла - возвращает кортеж чисел. Тогда через multiprocessing.Pool.map() можно будет достаточно просто распихать вызовы этой функции по процессам, а потом собрать обратно их результаты.

    Насчёт солвера: numpy из коробки умеет только систему линейных уравнений решать, а у тебя, кажется, квадратичная, пусть и с двумя переменными (уравнение для z у тебя тривиальное, так что его значение ты вроде как знаешь). Свести к линейной системе через замену t = x^2 твои уравнения вроде не получится (хотя я могу быть и не прав).

    А раз так, смотри в сторону пакета scipy, в частности, scipy.optimize.fsolve(). Проблема в том, что численным методам нужна какая-то "точка отсчёта" - начальное приближение для корней системы. Как его выбрать - смотри сам. Может, есть какое-то осмысленное значение, может, банальный 0;0 сойдёт.

    Ещё один вариант - заменить на numpy расчёты с матрицами, уж с этим-то он справится. А вот поиск решения оставить на sympy. Но тут надо замерять, сколько времени уходит на эти шаги, и есть ли смысл в такой экономии.
    Написано
  • Как повысить скорость работы xray+reality?

    Vindicar
    @Vindicar Автор вопроса
    Любитель поиграть в самолёты, а я просто повесил сайт на порт 4443. Если обращаться браузером, xray честно перенаправит трафик с 443 на указанный адрес:порт, так что браузер разницы не заметит.
    Написано
  • Как сделать код рабочим?

    Vindicar
    @Vindicar
    1. Оформи код в вопросе как положено. Нечитаемо ведь. Кнопка </> в редакторе в помощь, а заодно кнопка редактирования вопроса.
    2. if name == 'main': тут кое-что потеряно. А именно, двойные подчёркивания.
    Написано
  • Есть идеи по алгоритму для авторизации по локации?

    Vindicar
    @Vindicar
    Подход простой и практичный, но проблема в том, что этот пароль очень быстро "утечёт".
    Написано
  • Как повысить скорость работы xray+reality?

    Vindicar
    @Vindicar Автор вопроса
    Или вообще на своем VPS развернуть сайт на домене.

    Да, это оказалось решением.
    Написано
  • Как повысить скорость работы xray+reality?

    Vindicar
    @Vindicar Автор вопроса
    Поставил маскировку под сайт-заглушку на той же VPS, скорость стала такой же, как и без прокси. Спасибо!
    Написано
  • Как повысить скорость работы xray+reality?

    Vindicar
    @Vindicar Автор вопроса
    А вас не затруднит ткнуть пальцем? Я что-то не нахожу этот момент...
    Написано
  • Передать параметры (высота и ширина) в класс. models.ImageField?

    Vindicar
    @Vindicar
    Я с джанго не работал почти, но... вот это не похоже?
    Написано
  • Почему впн работает не на всех сайтах?

    Vindicar
    @Vindicar
    CityCat4, я просто зацепился за эту фразу:
    На клиенте есть маршрут до сервера, где локальный (российский) конец туннеля.

    Почему-то подумалось, что сервер - это российский VPS, а не on-premises сервер организации. Не так понял. =)

    А говорил я о том, что на домашних провайдерах часто проблемы с необфусцированными vpn-соединениями, идущими на зарубежные сервера. Вот и интересовался, для организаций и VPS в российкой зоне это тоже верно, или там правила помягче.
    Написано
  • Как повысить скорость работы xray+reality?

    Vindicar
    @Vindicar Автор вопроса
    Ну многие VPN протоколы хотя бы детектятся легко. У меня на йоте openvpn тут же рвёт соединение, а reality работает. Я, собственно, из-за чего и нервничаю: если нашли способ детектить reality (на гитхабе ходят слухи, что нашли), то надо искать другие варианты.

    Но я бы перенёс ответ в комментарий.
    Написано
  • Почему впн работает не на всех сайтах?

    Vindicar
    @Vindicar
    CityCat4, ну т.е. правила для "домашних" пользователей и для VPS разные. Так? Домашнему пользователю VPN за рубеж низзя, а VPSке можно. И VPN до российской VPSки тоже можно.
    Написано
  • Не настраиваются разные уровни логирования в python logging?

    Vindicar
    @Vindicar
    Не вполне по теме вопроса, но замечу: работа с путями у тебя просто ппц какая. Тут тебе и pathlib.Path, тут тебе и os.path, тут тебе и ручная склейка путей... не говоря уже о том, что __file__ всё же имеет специальное значение.
    import sys
    from pathlib import Path
    # __file__ и sys.argv[0] могут не совпадать для скриптов из нескольких файлов.
    script_path = Path(sys.argv[0]).resolve()
    dotenv_path = script_path.parent / '.env'
    script_name = script_path.stem
    log_dir = script_path.parent
    log_file = log_dir / (script_name + '.log')
    Написано
  • Почему код работает, только, если замедлять сервер до 5 кадров секунду?

    Vindicar
    @Vindicar
    Ланской Кирилл, в разных задачах требуется разная манера обмена данными. Вообще голыми сокетами хорошо пользоваться разве что в обучающих задачах.
    А json имеет схожую проблему - он предполагает, что ты декодируешь одно полное сообщение.
    Так что разделитель какой-то придётся придумать. Можно полагаться на то, что json по умолчанию не содержит переноса строк. Тогда можно будет в конце json-строки передать, скажем, \n\n. А при приёме данных накапливать принимаемые данные в буфере, пока в нём не появится \n\n. Появилось - всё что до \n\n декодируем и удаляем из буфера, сам разделитель тоже удаляем.
    Написано
  • Почему код работает, только, если замедлять сервер до 5 кадров секунду?

    Vindicar
    @Vindicar
    Ланской Кирилл, ну вот и ответ. Ты используешь потоковый сокет, а он подразумевает сплошной поток байт. Он не понимает, что в потоке могут быть отдельные сообщения. Клиент может отправить килобайт, а сервер читать его по байту. Или наоборот, как в твоём случае - клиент отправляет два сообщения, а сервер работает медленнее, и читает оба сообщения за один присест.
    Иными словами, ты можешь прочитать неполное сообщение, или прочитать несколько, или прочитать сколько-то целых и неполное. Это не от твоей программы зависит. Так что это уже твоя забота - добавить в данные какой-то разделитель, чтобы понять, где сообщение закончилось, и реагировать только на сообщение, которое пришло полностью.

    А вообще я бы посоветовал поискать библиотеку и работать с ней. Просто погугли pygame network, найдёшь несколько вариантов. Посравнивай их.
    Написано
  • Sign in to confirm you’re not a bot. This helps protect our community. Learn more (Yt-dlp) - как решить?

    Vindicar
    @Vindicar
    Николай Медведков, о, про netrc и user/pass я и сам забыл. Значит, не два, а четыре.
    Написано