memory heap
373 subscribers
2.57K photos
526 videos
52 files
3.17K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
Пример профилирования ДКА в Guile-INI 0.3.0 через Guile-SMC профилировщик.

Тестовая программа:
$ cat test.scm 
#!/usr/bin/guile-3.0 \
-L modules -e main -s
!#

(use-modules (ice-9 pretty-print)
(oop goops)
(logging logger)
(smc core log)
(ini))

(define (main args)
(log-clear-handlers!)
(log-add-handler! (make <port-log/us>
#:port (open-output-file "ini.log")))
(let ((data (ini->scm (current-input-port) #:debug-mode? #t)))
(pretty-print data)
(scm->ini data)))

Запуск парсера с выводом лога в файл:
$ cat /etc/php/7.4/apache2/php.ini | ./test.scm

Лог:
$ wc ini.log 
3528 21168 280750 ini.log
$ head ini.log
2022-01-07 17:06:27.338353 (DEBUG): [*] -> [read]
2022-01-07 17:06:27.339380 (DEBUG): [read] -> [read_section_title]
2022-01-07 17:06:27.339982 (DEBUG): [read_section_title] -> [read_section_content]
2022-01-07 17:06:27.340274 (DEBUG): [read_section_content] -> [read_comment]
2022-01-07 17:06:27.340710 (DEBUG): [read_comment] -> [read_section_content]
2022-01-07 17:06:27.340888 (DEBUG): [read_section_content] -> [read_comment]
2022-01-07 17:06:27.341363 (DEBUG): [read_comment] -> [read_section_content]
2022-01-07 17:06:27.341504 (DEBUG): [read_section_content] -> [read_comment]
2022-01-07 17:06:27.341728 (DEBUG): [read_comment] -> [read_section_content]
2022-01-07 17:06:27.341860 (DEBUG): [read_section_content] -> [read_comment]

Собственно профилирование:
$ smc profile ini.log
Total transitions: 3528
Total time: 630510 us
Stats:
read_comment: 416994 us (66.1360 %)
read_section_content: 153088 us (24.2800 %)
read_section_property_value: 17230 us (2.7327 %)
read_section_property_key: 16376 us (2.5973 %)
trim_section_property_key: 14990 us (2.3774 %)
trim_section_property_value: 6673 us (1.0583 %)
read_section_title: 4132 us (.6553 %)
read: 1027 us (.1629 %)

#guile #smc #dev #lisp #fsm #profiling
Со студентами программированием музыки занимаемся.

(Болт на динамик положен для улучшения звучания.)
This media is not supported in your browser
VIEW IN TELEGRAM
Ещё одно видео с практики -- изучали со студентами широтно-импульсную модуляцию (ШИМ.)
А так мы разбирали инкремент и декремент на практике по Arduino в НРТК.

Случай из практики прошлых лет: пришёл студент на задачу экзамена, говорю ему -- напиши цикл. Он написал. Спрашиваю, а что такое у тебя в коде за i++. Отвечает -- это, мол, "экскремент". С тех пор всем студентам эту байку рассказываю -- помогает в запоминании.

Чтобы в коде небыло "экскрементов" учите термины правильно! :-)
Сравнение вычислительной мощности современных компьютеров и компьютеров прошлого: https://spectrum.ieee.org/ibm-mainframe
memory heap
Photo
(Печатаю куски MPCNC.)
Выпустил релиз Guile-DSV 0.5.1 с возможностью вывода данных в формате DSV/CSV в формат таблиц Markdown, и также возможностью применять произвольный код на Scheme на каждую ячейку таблицы, и фильтровать строки/столбцы табличных данных.

#guile #scheme #projects #dsv
Суперкомпьютер Cray X-MP из 1982 г. выглядит так, как будто пришёл с ретро-футуристических обложек журналов.

До 117МГц частота центрального процессора, 128Мб ОЗУ, 38.4 Гб на 32-х жёстких дисках 5.12 тонн — всё вместе 5.12 тонн веса за 15 миллионов долларов (без учёта стоимости дисков.)

Потреблял 345 КВт.

Фото отсюда:
https://computing.llnl.gov/about/machine-history

#computing #history
👍1