Как я могу изменить цвет текста в Top Bar Gnome?

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

Я имею в виду, вы пытаетесь построить массив с максимальным индексом 10 миллиардов (на основе диапазона ) с 1 миллиардом определенных значений. Итак, awk потенциально необходимо зарезервировать место для 10 миллиардов переменных. Я недостаточно знаком, чтобы сказать, сколько места это будет означать, но 10 миллиардов 16-битных целых чисел означают 18,5 ГБ, и даже если awk умен в построении такого разреженного массива, для этого потребуется более 1,8 GB просто так храните числа, которые вы генерируете.

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

Как же тогда избежать огромных требований к памяти?

А. Гордон предлагает один вариант, полагаясь на последовательность и просто перетасовывая ее для случайности. Это хорошо работает, когда требуется, чтобы результат действительно был числами, и вы хотите, чтобы они были из заданного диапазона.Если диапазон более сложный, чем от 1 до N, вы можете сгенерировать последовательность с помощью awk , а затем передать ее в sort -R . Также см. Мой комментарий к ответу о том, как сделать диапазон и количество произведенных чисел разными.

Одним из вариантов может быть использование криптографической (хеш-функции) для получения случайных чисел, но в этом случае вы не можете определить диапазон от 1 до N, поскольку эти функции обычно производят N-битный вывод, и вы не можете искажать результаты, не рискуя вызвать коллизию (повторяющееся число в наборе) .Такие функции, однако, гарантированно легко произведут 1 миллиард уникальных выходных данных (поскольку эти хеш-функции предназначены для того, чтобы не выдавать один и тот же результат дважды, даже большое количество повторных звонков). В зависимости от реализации их вывод может быть не числами, а строками, и можно было бы преобразовать строковый вывод в числа, но поскольку размер их вывода обычно довольно велик, тогда диапазон чисел, полученных в результате преобразования, будет действительно огромным. Вы можете начать с этого вопроса о стеке , если вам интересно изучить этот вариант.

Если вы рискуете столкнуться с конфликтом, даже если это маловероятно, вы можете попробовать использовать хороший источник случайности (/ dev / urandom - один из вариантов) для генерации 1 миллиарда чисел. Я не знаю, насколько вероятно, что из этого вы сможете получить 1 миллиард уникальных чисел, но попробовать это наверняка стоит того.Однако не существует эффективного способа узнать, есть ли дубликат в наборе результатов, поскольку для этого потребуется иметь все числа в памяти для сравнения.

1
08.09.2018, 21:51
1 ответ
  • заходим в свою тему, обычно устанавливается в/usr/share/themes/<your_theme_folder>/gnome-shell
  • найти .message-titleи .message-contentселектор
  • добавьте цвет или сделайте с ним что хотите
2
27.01.2020, 23:42

Теги

Похожие вопросы