Проблема заключается не в том, чтобы хранить этот файл в памяти, а в том, чтобы просмотреть таблицу поиска для каждой строки файла данных. Ваш код этого не показывает, но за кулисами вы выполняете 3 000 000 раз 323 000 000/2 = почти полквадриллиона сравнений строк, перемещая тысячи терабайт по шине памяти. Даже для быстрой памяти со скоростью 200 Гбит/с это займет много часов.
Таким образом, ключ к проблеме заключается в том, как хранить таблицу поиска. Я предлагаю использовать бинарное дерево, чтобы экспоненциально сократить время выполнения. Вы можете сделать это на perl
или C
или на каком-либо другом языке, но на данный момент это будет не по теме -здесь.
Набор инструментов команд unix не поможет вам решить эту проблему.
Кажется, невозможно переименовать URI.
Итак, я удалил старый репозиторий с помощью zypper rr openSUSE-Leap-15.0-1
и создал новые -Я создал как oss, так и не -oss, но я не уверен, к чему относится oss и не -oss:
zypper ar -p 1 http://download.opensuse.org/debug/distribution/leap/15.2/repo/non-oss/ openSUSE-Leap-15.2_non-oss
zypper ar -p 2 http://download.opensuse.org/debug/distribution/leap/15.2/repo/oss/ openSUSE-Leap-15.2_oss
Все репозитории можно найти здесь:http://download.opensuse.org/
Мне также пришлось изменить команду установки, потому что имена пакетов были неправильными:
zypper install php7-gd php7-mcrypt php7-curl php7-intl php7-xsl php7-mbstring php7-openssl php7-zip php7-soap
РЕДАКТИРОВАТЬ:Но будьте осторожны! Как видите, я изменился с openSUSE -Leap -15.0 -1 на openSUSE -Leap -15.2 . Когда я выполнил zypper update
, он также обновил PHP с 7.2 до 7.3, что вызвало некоторые ошибки в magento 2. Лучше оставьте свою версию, если не хотите обновляться.
Если один репозиторий указывает на несуществующий диск или URL-адрес, просто удалите или отключите этот репозиторий:
отключить:
zypper mr -d openSUSE-Leap-15.0-1
удалить:
zypper rr openSUSE-Leap-15.0-1
В остальном я настоятельно рекомендую вам использовать репозитории вашего собственного дистрибутива. Использование пакетов из других (более поздних )дистрибутивов может вызвать проблемы с зависимостями, и вы можете в конечном итоге обновить свою систему наполовину. В таком случае, почему бы не обновить всю ОС?