LINUX.ORG.RU

Избранные сообщения AKonia

Когда линь перестанет виснуть при исчерпании памяти? (2022)

Форум — Desktop

Сколько я пользуюсь компами с виндой и линем, столько испытываю эти проблемы. Некая десктопная софтина жрет оперативу. потом еще немного жрет, и еще немного, и потом внезапно система висит, бешенно читая SSD накопитель. OOM не срабатывает, потому что память в медленном сценарии не исчерпана. Хуже всего то, что при отсутствии свопа данный сценарий наступает очень резко, лавиннобразно, система работает как ни в чем ни бывало, а потом за несколько секунд замирает.

Прописал vm.vfs_cache_pressure = 20 в /etc/sysctl.conf — ничего не поменялось. Systemd до недавних пор в этом плане тоже была поломатое, вроде в бунте 21.10 пофиксили, но у меня деб 11: https://github.com/systemd/systemd/issues/10581

 , ,

byko3y
()

Эффективная борьба с зависаниями по исчерпании памяти?

Форум — General

В последние дни вроде как активизировались обсуждения на тему зависаний линукса при нехватке памяти. Но сейчас на дворе 2019, почему на такую серьёзную проблему никто не обращает внимания уже больше 20 лет? Неужели она не решаемая?

Вроде как появились какие-то студентоподелки вроде earlyoom (вызывающие system() на сырые команды пришедшие через dbus или что-то такое там), но разве нельзя решить эту проблему средствами того же systemd?

Вот вам кусочек из лога, система ушла подумать и не вернулась. В ядре были включены все возможные счётчики, таймеры реагирующие на зависания и всё такое, в логе ничего не появилось от момента зависания до вызова manual oom. Готово для продакшена.

[126549.382913] sysrq: SysRq : Manual OOM execution
[126549.382990] Mem-Info:
[126549.382994] active_anon:1907880 inactive_anon:18992 isolated_anon:0
                 active_file:635 inactive_file:1258 isolated_file:0
                 unevictable:1 dirty:0 writeback:0 unstable:0
                 slab_reclaimable:4522 slab_unreclaimable:15053
                 mapped:65700 shmem:19656 pagetables:6750 bounce:0
                 free:14265 free_pcp:1481 free_cma:0
[126549.382996] Node 0 active_anon:7631520kB inactive_anon:75968kB active_file:2540kB inactive_file:5032kB unevictable:4kB isolated(anon):0kB isolated(file):0kB mapped:262800kB dirty:0kB writeback:0kB shmem:78624kB writeback_tmp:0kB unstable:0kB all_unreclaimable? no
[126549.382998] DMA free:15900kB min:20kB low:32kB high:44kB active_anon:0kB inactive_anon:0kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:15996kB managed:15900kB mlocked:0kB kernel_stack:0kB pagetables:0kB bounce:0kB free_pcp:0kB local_pcp:0kB free_cma:0kB
[126549.382998] lowmem_reserve[]: 0 2982 7935 7935
[126549.383002] DMA32 free:27064kB min:4280kB low:7332kB high:10384kB active_anon:2897840kB inactive_anon:28604kB active_file:0kB inactive_file:0kB unevictable:0kB writepending:0kB present:3119804kB managed:3054044kB mlocked:0kB kernel_stack:720kB pagetables:7968kB bounce:0kB free_pcp:4264kB local_pcp:1328kB free_cma:0kB
[126549.383002] lowmem_reserve[]: 0 0 4952 4952
[126549.383006] Normal free:14096kB min:7108kB low:12176kB high:17244kB active_anon:4733680kB inactive_anon:47364kB active_file:2172kB inactive_file:4324kB unevictable:4kB writepending:0kB present:5234688kB managed:5075588kB mlocked:4kB kernel_stack:3824kB pagetables:19032kB bounce:0kB free_pcp:1660kB local_pcp:16kB free_cma:0kB
[126549.383006] lowmem_reserve[]: 0 0 0 0
[126549.383007] DMA: 1*4kB (U) 1*8kB (U) 1*16kB (U) 0*32kB 2*64kB (U) 1*128kB (U) 1*256kB (U) 0*512kB 1*1024kB (U) 1*2048kB (U) 3*4096kB (M) = 15900kB
[126549.383014] DMA32: 182*4kB (UME) 60*8kB (UME) 82*16kB (UME) 83*32kB (UME) 128*64kB (UME) 65*128kB (UME) 17*256kB (UM) 2*512kB (U) 0*1024kB 0*2048kB 0*4096kB = 27064kB
[126549.383021] Normal: 779*4kB (UME) 239*8kB (UME) 149*16kB (UME) 115*32kB (UME) 43*64kB (UE) 0*128kB 0*256kB 0*512kB 0*1024kB 0*2048kB 0*4096kB = 13844kB
[126549.383027] 21739 total pagecache pages
[126549.383027] 2092622 pages RAM
[126549.383027] 0 pages HighMem/MovableOnly
[126549.383028] 56239 pages reserved
[126549.383028] Tasks state (memory values in pages):
[126549.383028] [  pid  ]   uid  tgid total_vm      rss pgtables_bytes swapents oom_score_adj name
[126549.383031] [    550]     0   550     3752      337    53248        0             0 udevd
[126549.383032] [   1372]     0  1372      627       14    32768        0             0 busybox
[126549.383033] [   1506]     0  1506    54386      306    69632        0             0 rsyslogd
[126549.383034] [   1537]     0  1537      662       30    45056        0             0 rasdaemon
[126549.383035] [   1668]     0  1668    19558       86    53248        0             0 chronyd
[126549.383036] [   1698]     0  1698     2241      200    49152        0             0 crond
[126549.383037] [   1764]     0  1764      975      100    45056        0             0 login
[126549.383038] [   1765]     0  1765      975      100    45056        0             0 login
[126549.383039] [   1766]     0  1766     1993       30    53248        0             0 agetty
[126549.383040] [   1767]     0  1767     1993       29    49152        0             0 agetty
[126549.383041] [   1768]     0  1768     1993       30    53248        0             0 agetty
[126549.383042] [   1769]     0  1769     1993       29    49152        0             0 agetty
[126549.383043] [   1771]     0  1771     2442      168    57344        0             0 bash
[126549.383044] [   2038]  1000  2038     2407      143    57344        0             0 bash
[126549.383045] [   3819]     0  3819    34164      306   118784        0             0 sddm
[126549.383046] [  25344]     0 25344    57765    18947   331776        0             0 X
[126549.383048] [  25362]     0 25362    13354      308   102400        0             0 sddm-helper
[126549.383049] [  25366]  1000 25366    68432     1053   241664        0             0 kwalletd5
[126549.383050] [  25367]  1000 25367     2317       77    57344        0             0 startkde
[126549.383051] [  25373]  1000 25373     1143       70    45056        0             0 dbus-launch
[126549.383051] [  25374]  1000 25374     1227      293    45056        0             0 dbus-daemon
[126549.383052] [  25398]  1000 25398      561       22    40960        0             0 start_kdeinit
[126549.383053] [  25399]  1000 25399    24169      749   176128        0             0 kdeinit5
[126549.383054] [  25400]  1000 25400    68126     1123   233472        0             0 klauncher
[126549.383055] [  25403]  1000 25403   147607     3503   319488        0             0 kded5
[126549.383056] [  25409]  1000 25409    67982     1056   233472        0             0 kaccess
[126549.383057] [  25418]  1000 25418    68083     1367   233472        0             0 kglobalaccel5
[126549.383058] [  25422]  1000 25422    11436      133    81920        0             0 kwrapper5
[126549.383059] [  25423]  1000 25423    88283     1272   253952        0             0 ksmserver
[126549.383060] [  25429]  1000 25429    55222      475   151552        0             0 kscreen_backend
[126549.383061] [  25436]  1000 25436   128268     7376   430080        0             0 krunner
[126549.383062] [  25438]  1000 25438   291634    42985   897024        0             0 plasmashell
[126549.383063] [  25446]  1000 25446    38475      535   159744        0             0 xembedsniproxy
[126549.383064] [  25449]  1000 25449    57216      531   172032        0             0 gmenudbusmenupr
[126549.383065] [  25455]  1000 25455    81168      970   217088        0             0 org_kde_powerde
[126549.383066] [  25469]  1000 25469   135246      963   241664        0             0 kactivitymanage
[126549.383067] [  25693]  1000 25693    83725     5711   368640        0             0 konsole
[126549.383068] [  25696]  1000 25696     2407      151    61440        0             0 bash
[126549.383069] [  30544]  1000 30544     2407      156    57344        0             0 bash
[126549.383070] [   3640]  1000  3640    95579     8042   360448        0             0 thumbnail.so
[126549.383071] [  14305]  1000 14305   749453    94288  1695744        0             0 falkon
[126549.383072] [  14310]  1000 14310    67726     1633   348160        0             0 QtWebEngineProc
[126549.383073] [  14345]  1000 14345   499805   107824  4390912        0           300 QtWebEngineProc
[126549.383074] [  14518]  1000 14518   870434    33733   987136        0             0 kwin_x11
[126549.383075] [  14720]  1000 14720   442839    21406  2011136        0           300 QtWebEngineProc
[126549.383076] [  14880]  1000 14880     2348       85    57344        0             0 ex.sh
[126549.383077] [  14882]  1000 14882  2440872  1572825 13651968        0             0 java
[126549.383078] [  14951]  1000 14951   469635    35992  3039232        0           300 QtWebEngineProc
[126549.383079] Out of memory: Kill process 14882 (java) score 773 or sacrifice child
[126549.383136] Killed process 14882 (java) total-vm:9763488kB, anon-rss:6281980kB, file-rss:9252kB, shmem-rss:68kB
[126549.494043] oom_reaper: reaped process 14882 (java), now anon-rss:0kB, file-rss:30532kB, shmem-rss:68kB

 , , , ,

linuxnewbie
()

Python. Получить региональные новости с главной страницы Яндекса

Форум — Development

Хочу в консоль печатать новости с главной страницы Яндекса: общероссийские и региональные.

Написал скрипт:


#!/usr/bin/python3
import requests
from bs4 import BeautifulSoup
r=requests.get("http://yandex.ru")

soup=BeautifulSoup(r.text, "html.parser")
news=soup.find_all(class_="news__item-content")

print("Russian news:")
for current_news in news:
    print(current_news.text)

Российские печатает без проблем. Но региональных нет…

Проблема в том, что id=«news_panel_region», где содержатся региональные новости, появляется только после нажатия кнопки на имя города на главной странице. В остальном новости хранятся аналогично общероссийским. При этом, судя по разделу «Network», никаких дополнительных веб-запросов не отправляется при клике на имя города. Какой-то JS выполняется может?

Как тут лучше решить проблему и решаемая ли она?

 , ,

iljuase
()

Подскажите по сборке .appimage

Форум — General

Итак собрал я значится эмулятор Citra. И попалась мне заметка про appimage. Собрал appimage пакетик, но остался ряд вопросов...

«Фабричные» аппимеджи спрашивают при запуске - «добавить ли ярлык в систему?», мои чего-то нет. Как это исправить?

Как бы присобачить к пакету firejail, изнутри? То есть, пакет при запуске - САМ запускает firejail (в идеале сам под себя его и настраивает).

Собирал имидж так:

mkdir Build
cd Build
cmake  .. -DCMAKE_INSTALL_PREFIX=/usr/ \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_CXX_FLAGS=-O3 -g -pipe -msse4.1 -stdlib=libc++ ..
make -j5
make DESTDIR=citra.AppDir install

cd citra.AppDir
rm -rf ./usr/bin/citra

sed -i -e 's|/usr|././|g' usr/bin/citra-qt

mkdir -p usr/lib64

cp -a /usr/lib64/libglvnd/libGL.so.* ./usr/lib64
cp -a /usr/lib64/libQt5OpenGL.so.* ./usr/lib64
cp -a /lib64/librt.so.* ./usr/lib64
cp -a /lib64/libdl.so.* ./usr/lib64
cp -a /usr/lib64/libpng16.so.* ./usr/lib64
cp -a /lib64/libz.so.* ./usr/lib64
cp -a /usr/lib64/libSDL2-2.0.so.* ./usr/lib64
cp -a /usr/lib64/libQt5Widgets.so.* ./usr/lib64
cp -a /usr/lib64/libQt5Gui.so.* ./usr/lib64
cp -a /usr/lib64/libQt5Core.so.* ./usr/lib64
cp -a /lib64/libstdc++.so.* ./usr/lib64
cp -a /lib64/libm.so.* ./usr/lib64
cp -a /lib64/libgcc_s.so.* ./usr/lib64
cp -a /lib64/libpthread.so.* ./usr/lib64
cp -a /lib64/libc.so.* ./usr/lib64
cp -a /usr/lib64/libglvnd/libGLX.so.* ./usr/lib64
cp -a /usr/lib64/libX11.so.* ./usr/lib64
cp -a /usr/lib64/libXext.so.* ./usr/lib64
cp -a /usr/lib64/libGLdispatch.so.* ./usr/lib64
cp -a /lib64/ld-linux-x86-64.so.* ./usr/lib64
cp -a /usr/lib64/libharfbuzz.so.* ./usr/lib64
cp -a /usr/lib64/libicui18n.so.* ./usr/lib64
cp -a /usr/lib64/libicuuc.so.* ./usr/lib64
cp -a /usr/lib64/libpcre16.so.* ./usr/lib64
cp -a /lib64/libglib-2.0.so.* ./usr/lib64
cp -a /usr/lib64/libxcb.so.* ./usr/lib64
cp -a /usr/lib64/libfreetype.so.* ./usr/lib64
cp -a /usr/lib64/libgraphite2.so.* ./usr/lib64
cp -a /usr/lib64/libicudata.so.* ./usr/lib64
cp -a /lib64/libpcre.so.* ./usr/lib64
cp -a /usr/lib64/libXau.so.* ./usr/lib64
cp -a /usr/lib64/libXdmcp.so.* ./usr/lib64
cp -a /usr/lib64/libbz2.so.* ./usr/lib64

wget -c "https://github.com/probonopd/AppImageKit/releases/download/6/AppRun_6-x86_64"
mv AppRun_6-x86_64 AppRun
chmod a+x ./AppRun

далее скопировал .desctop файл и иконки

cd ..

wget -c "https://github.com/probonopd/AppImageKit/releases/download/6/AppImageAssistant_6-x86_64.AppImage"

chmod a+x "AppImageAssistant_6-x86_64.AppImage"
./"AppImageAssistant_6-x86_64.AppImage" ./citra.AppDir/ ./citra-$BRANCH-bleeden_age-$VER.AppImage

P.S. Флаги оптимизации так применяют?

P.P.S. Знает кто, как автаматезировать или упростить копирование зависимостей? ldd citra-qt и всобачивать cp -a /что /куда вручную, довольно утомительно...

 ,

Kapshibergen
()

Ссылки на некорректные сообщения (56)

Форум — Linux-org-ru

Эта тема предназначена для просьб об удалении того, чего не должно быть на форуме.

Два важных замечания:

  • после переполнения эта тема будет закрыта для комментирования, вместо нее будет создана новая

  • только ссылки, без обсуждений. Все лишнее будет удаляться

Предыдущая тема: Ссылки на некорректные сообщения (55)

Важно: ссылку на комментарий надо копировать из пункта [Ссылка] под комментарием, а не из адресной строки.

ВАЖНО ЕСЛИ КОММЕНТАРИЙ ВЫЗЫВАЕТ ЛИЧНО У ВАС КОГНИТИВНЫЙ ДИССОНАНС, РАССТРАИВАЕТ ВАС ИЛИ ЕЩЕ ЧЕГО, ПОТОМУ ЧТО НЕ СОВПАДАЕТ С ВАШЕЙ ТОЧКОЙ ЗРЕНИЯ, ПОЖАЛУЙСТА, СХОДИТЕ НА УЛИЦУ, ПОЧИТАЙТЕ КНИГУ, ПОГЛАДЬТЕ КОТА, ПОСМОТРИТЕ КАК ГОРИТ ОГОНЬ! В конце концов, попейте вкусный кофе. Пример такого комментария: OpenIndiana 2021.04 Hipster (комментарий)

 

a1batross
()

Альтернатива LaTeX'у.

Форум — Talks

Смотрю лекции к courser'овскому курсу о LaTeX'е (кому интересно — ещё не поздно записаться, первое задание желательно успеть сдать до 25 мая), огорчаюсь. LaTeX отделяет содержание от оформления, да. Но вот множество вопросов по оформлению приходится решать самостоятельно. Хочешь нарисовать несколько формул — сам укажи по какому символу они будут выравнены, хочешь скобки в формуле — обычных символов "(" и ")" недостаточно, нужны специальные команды, хочешь кириллицу в формулах — подключи специальный пакет который может конфликтовать с другими пакетами (а на дворе 2014 год и Unicode).

Может быть были попытки создать издательскую систему на похожих принципах, но с другим поведением? Чтобы большее количество разнообразных типовых ситуаций обрабатывалось умолчальным образом, и только в специальных случаях пользователь мог вмешаться. Ведь все алгоритмы TeX'а и LaTeX'а известны.

 , ,

Camel
()

Ситуация с Wayland: факты о X и Wayland.

Новости — Open Source
Группа Open Source

Это вольный перевод статьи, намедни размещённой на phoronix. Оринальная статья — обзор недостатков, их исправлений и преимуществ между X и Wayland. Её написал Eric Griffith, при участии Daniel Stone, специально для ресурса phoronix. Работа собрана по кусочкам из презентаций Keith Packard, David Airlie, Kristian Høgsberg, из страниц про X11, X12, Wayland в вики и на freedesktop.org, из прямых интервью с разработчиками.

Оригинал выпущен под Creative Commons версия 3, с указанием авторства; перевод доступен на тех же условиях (с указанием на авторов оригинала, как мне кажется).

( читать дальше... )

>>> Подробности

 ,

quiet_readonly
()

Нужны ли компиляторам универсальные парсеры?

Форум — Development

Доброй пятницы, ЛОР.

Вопрос в первую очередь тем, кто погружался в исходники компиляторов: gcc, clang, rustc, fpc, go… Используют ли они универсальные инструменты для лексического анализа и разбора — все эти flex, bison и др., которые рекомендуют учебники?

Или же там для разбора исходников написано что-то своё, более низкоуровневое?

И второй вопрос — что посоветуете человеку, который хочет что-то вытаскивать из написанного людьми (*) кода на C или C++? Пойти по классике и упороться flex-ом или?..

В первую очередь интересен первый вопрос, особенно в части gcc и clang. Жду рассказов людей, которые туда погружались и выплыли. :)

(*) - так-то понятно, что можно повесить вывеску «принимается только код, обработанный бьютифаером» и по-бырому сделать «парсер» на регулярках, а то и вручную. И «для себя» и даже для небольшого коллектива это будет вполне нормальное инженерное решение, даже в чём-то юниксвейное. А вот если задаться целью сделать как следует…

Upd: в обсуждении выяснилось, что со вторым вопросом, если не лезть внутрь функций, помогает CastXML. Пример:

castxml globals.cpp --castxml-gccxml -o ./out.xml -I ../core -I /usr/include/qt4

Upd2: gcc-xml, предшественник CastXML, тоже поддерживает ключ -I, но в имевшемся у меня мане он не описан. Выходной файл в этом случае задаётся ключом -fxml=...

Всем спасибо за помощь.

 , ,

hobbit
()

А как правильно отключать гибридную дискретку?

Форум — Linux-hardware

Сабж, есть ноут с дискретной графикой (10750+Т1000), судя по powertop в около-простое (браузер и чуток мелочи) разряд батареи идёт с темпом около 13-14 Ватт при средней яркости и простаивающей вафле, при этом сама система лопает 3-4 Ватта, проц спит нормально (почти всегда в С3), яркость экрана вносит всего 3-4 Ватта разницы на средней яркости.
Судя по glxinfo задействована именно встройка, вентиляторы молчат, диск в простое и т.п., батарейка обещает около 7 часов жизни (что похоже, она емнип 95вт*ч, в реальности 6 часов под работой получается)

Если в биосе отключить гибрид и включить только дискретку, то под виндой разряд примерно сравним, аналогично если включить гибрид и подключить внешний монитор (который один фиг через дискретку заведён) что под виндой что под убунтой будет ~ 6 реальных часов.

Проблема в чём - я тут случайно оставил на нем ролик крутиться под виндой, с включённым гибридом и без внешнего монитора (т.е. работала только встройка) и он протянул 12 часов не разрядившись до конца (обещал ещё 6, правда яркость ниже обычного была и ролик явно декодировался аппаратно) т.е. по ходу вполне реально его уложить в 3-4 Ватта на систему и 3-4 Ватта на экран, однако (с) что-то явно не так с отключением, как минимум, дискретки под линухом при отключённых мониторах (хотя как она умудряется лопать 6-8 Ватт и не стартовать вентилятор я не очень понимаю) - куда копать?

 ,

rukez
()

Минималистичная библиотека для http-сервера

Форум — Development

Привет, ЛОР.
Возникла потребность в минималистичной библиотечке, с которой можно удобно разворачивать мини-веб-сервисы «на ходу», беглым поиском найдено не было.

Поэтому был наваян следущий говнокод: httрs://pastebin.com/CRFz3n2a https://pastebin.com/WN0Adqyc

Конечно же, в качестве недоязычка был выбран горячо любимый Lua (5.2+ либо luajit)
Из зависимостей — только cqueues.

apt install luajit lua-cqueues

Я понимаю, что ЛОР это не говнокод.ру и не моя личная армия, но надеюсь на приход царя то, что адекватные ЛОРовцы, которые поумнее меня, укажут на явные ошибки и косяки, прежде чем я выложу это поделие версии 0.01 в опенсорс.

пример использования:

local server = require 'http-server'

server:router{ 
    {
        ['/'] = function(req)
            return 'it works.' 
        end
    }, 

    {
        'GET',  ['/hello'] = function(req) 
            return 'hello, elon musk.' 
         end
    },  

    {
        'POST', ['/post']  = function(req) 
            return 'oh, you posted ' .. (req.body or '') 
         end
    },
}

server:listen{host='0.0.0.0', port=8000}
server:start()


тестирование производительности (10000 клиентов, loader.io): https://imgur.com/vjxZMBl.png (потребление памяти ~7MB)

 ,

annerleen
()

вычисление тригонометрии - как?! как вы это делаете?

Форум — Development

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

Интересует сам механизм, достал свой пыльный конспект по матану всю ночь читал, пытался вспомнить, под утро наиндусил на C разложение в ряд Тейлора(в три итерации) и сравнил выхлоп с системной функцией... и вот вопрос таки возник.

Получилось, что на малых углах разбег начинается после второго знака, но уже к 30° он перескакивает на первый и далее только растёт. Оно понятно что я тот ещё индус, но хотелось бы послушать опыт знающих.(glibc я конечно почитаю потом).

конечный результат системного   косинуса  10:   0.984808
конечный результат вычисленного косинуса  10:   0.984731

конечный результат системного   косинуса  20:   0.939693
конечный результат вычисленного косинуса  20:   0.938460

конечный результат системного   косинуса  30:   0.866025
конечный результат вычисленного косинуса  30:   0.859819

сам код :

#include <stdio.h>
#include <math.h>
#define PI 3.14159265
double  rezult, deg_0,deg,test;
double factor (double iterration);
double stepen (double deg, double step);
double prom( double st, double faktor);
int main()
{
    printf ("введите значение: ");
    scanf("%lf", &deg_0);
    deg=deg_0*(PI/180);
    printf(" \n");
    printf("Processing... \n");
    double q;
    q=2;
    double promt;
    promt=prom(deg,q);
    q=q+2;
    promt=promt+prom(deg,q);
    q=q+2;
    promt=promt-prom(deg,q);
    q=q+2;
    promt=promt+prom(deg,q);
    rezult=1-promt;
    test=cos(deg);
    printf("конечный результат системного   косинуса %10f: %10f\n",deg_0, test);
    printf("конечный результат вычисленного косинуса %10f: %10f\n",deg_0, rezult);
    return 0;
}
double factor (double iterration)
{
    if(iterration < 0)
        return 0;
    if (iterration == 0)
        return 1;
    else
        return (iterration < 2) ? 1 : iterration * factor(iterration - 1);
}

double stepen (double deg, double step)
{
    if(step < 0) step = -step;
    if(step == 0) step = 1;
    double result = 1;
    for (double i = 0; i < step; i++) {
        result *= deg;
    }
    return result;
}
double prom(double st, double faktor)
{
 double znachenie;
  double i,j;
  i=stepen(st,faktor);
  j=factor(faktor);
  znachenie=i/j;
  return znachenie;
}
за код прошу сильно не пинать, я не программер, наиндусил на коленке чтоб проверить сам принцип.

Короче кто как это решает?

PS. интересует именно голый алгоритм,за системные инструменты glibc я в курсе.

 ,

Gramozeka
()

Как проверить руками (наивно, по-простому) сколько (целочисленных) кор у процессора?

Форум — Linux-hardware

Всем привет.

Одновременное зипование файла из оперативы – это хороший тест для числа кор? У меня почему-то получается что плохой.

140МБ файл в памяти (mount -t tmpfs -o size=500m tmpfs /mnt/mem1), внутри него – (ужЕ) сжатые данные.

Пробую скриптик типа:

#!/bin/bash

time gzip -c /mnt/mem1/zt.bin > /dev/null &
time gzip -c /mnt/mem1/zt.bin > /dev/null &
time gzip -c /mnt/mem1/zt.bin > /dev/null &
time gzip -c /mnt/mem1/zt.bin > /dev/null &

Если одна строчка (3 закомментить), то 5 сек. Причём htop показывает что используется 1 кора. Если 2 строчки, то 7 сек. Все 4 – 19 сек. governor=performance.

Какая-то фигня: получается (по факту) что у меня 2 коры? (причём шарящие какое-то другое железо). Сабж. Я не бенчмаркю, просто хочу (по-тупому, как простой юзер) убедиться в количестве кор.

Проясните пожалуйста!

 ,

the1
()

Как посимвольно работать с кириллицей в Си

Форум — Development

gcc версия 4.6.3 (Ubuntu/Linaro 4.6.3-1ubuntu5)

char *buf = "0123АБВRRRЕ";
for(;*buf;*buf++) printf("%c\n",*buf);
exit(0);

result:

0
1
2
3

�

�

�
R
R
R

�

sadavod
()

Чем сделать автоматическую трассировку

Форум — Development

Добрый день, ЛОР.

Судя по всему, я хочу какой-то гибрид из gdb, ltrace (и, возможно, valgrind).

gdb позволяет смотреть трассировку программы при попадании на точку останова.

ltrace выводит все вызовы библиотечных функций (но только библиотечных).

А можно ли каким-то инструментом (например, тем же gdb, но ни в мане, ни в «инструкциях от Васянов» я ничего похожего не нашёл) запустить свою программу и получить полный лог её хождения по собственным функциям от начала до конца? Без брекпойнтов, чтобы программа могла работать в условиях, максимально приближенных к боевым? Понятно, можно нашпиговать каждую функцию отладочным выводом на std::cout, но может, можно это как-то автоматизировать?

 , ,

hobbit
()

Нашел залежи документации

Форум — Talks

Нашел случайно. Чей сервер, не знаю:

https://doc.lagout.org/

Не всё на английском, часть на французском. Есть как историческая информация, так и актуальная.

 ,

wandrien
()

вопросы к проекту radare2

Форум — General

кто-нибудь пользуется всерьез этим инструментом для исследования «левых» бинарников? У меня к софтине сплошные вопросы:

  1. Как искать строки с пробелами или «специальными» для r2 символами (типа @)?
  2. Возможно ли использование сигнатур (аналогичных тем, что используются в другом, более популярном проприетарном аналоге)
  3. Возможно ли доопределение типов на лету (чтобы вместо void* иметь аккуратную структуру)?

Более бестолковой документации и системы команда, чем на r2, я вообще никогда не видел.

А так да, у меня руки из жопы и синдром утенка.

 , ,

demidrol
()

Audacity как записать звук с компьютера?

Форум — General

В Винде звук записывается через WASAPI.

А в ALSA можно выбирать только микрофоны.

 , , , ,

Strelok54442
()

Узнать текущую раскладку клавиатуры.

Форум — Desktop

В общем, раскладка меняется стндартно:

setxkbmap -option grp:switch,grp:alt_shift_toggle us,ru

Необходимо узнать текущую раскладку.

Перемещено beastie из general

ParkeT
()

Как узнать раскладку Xorg?

Форум — Desktop

Как узнать текущую раскладку из командной строки? Никаких гномов и kde не стоит

cvs-255
()

Посоветуйте, пожалуйста, программу для рисования пером (желательно на Gtk)

Форум — Desktop

Что-то вообще по тегу stylus мало обсуждений.

Gournal
https://www.adebenham.com/old-stuff/gournal/
xournal
http://xournal.sourceforge.net/
xournalpp
https://github.com/xournalpp/xournalpp
NoteLab
http://java-notelab.sourceforge.net/
Jarnal
http://www.dklevine.com/general/software/tc1000/jarnal.htm

Как программе передаётся информация о нажатии верхней кнопки, как боковой, как вообще о том, что рисование идёт стилусом, а не мышью?

 ,

Einstok_Fair
()