Skip to main content

Оглавление

Инструкция по развертыванию проекта

Требования к системе

  • ОС: Linux (рекомендуется Ubuntu 20.04 LTS или выше)
  • Python: версия 3.8 или выше
  • Компилятор: GCC (GNU Compiler Collection)
  • Инструменты отладки и профилирования:
    • Valgrind
    • GDB (GNU Debugger)
    • Gprof (GNU Profiler)

1. Установка зависимостей

Установка Python, PIP и venv

sudo apt update
sudo apt install python3 python3-pip python3-venv

Установка GCC, Valgrind, GDB, Gprof

sudo apt install gcc valgrind gdb binutils

Проверка версий

python3 --version
pip3 --version     
python3 -m venv --help 
gcc --version
valgrind --version
gdb --version
gprof --version

2. Клонирование репозитория

git clone https://github.com/moevm/mse1h2025-perf.git
cd mse1h2025-perf

3. Установка Python-зависимостей

python3 -m venv venv  
source venv/bin/activate  
(venv) pip install -r requirements.txt

4. Установка пакета

Детальная информация о pip пакете проекта - Документация


5. Загрузка исполняемого файла на Яндекс.Диск

Инструкция по запуску генератора с примером загрузки исполняемого файла на Яндекс.Диск - Документация


Функционал проекта

Примеры использования генераторов задач

Проект поддерживает 3 генератора задач. Ниже приведены примеры их запуска.

Генератор 1:

Создание задач на профилирование

generators.profiling1 1 init -o test.out

Проверка задач на профилирование

./test.out
gprof -bp test.out gmon.out
generators-profiling1 finding_in_main check -b test.out -a reorganization -s 1

Параметры:

  • Первый параметр: тип задачи (1, 2)
  • Второй параметр: создание задачи или проверка ответа (init, check)
  • С полным списком параметров можно ознакомиться в документации к генератору - Документация

Генератор 2:

Создание задач на утечку памяти

python3 -m generators.leak_generator -m 1

Проверка задач на утечку памяти

python3 -m generators.leak_generator -m 2

Параметры:

  • --mode, -m: создание задачи иили проверка ответа (1, 2)
  • С полным списком параметров можно ознакомиться в документации к генератору - Документация

Генератор 3:

Создание задач на отладку

python3 -m generators.cycle_generator -m 1

Проверка задач на отладку

python3 -m generators.cycle_generator -m 2

Параметры:

  • --mode, -m: создание задачи или проверка ответа (1, 2)
  • С полным списком параметров можно ознакомиться в документации к генератору - Документация

CodeRunner Moodle

Для демонстрации работоспособности модуля была создана тестовая задача на Moodle. Перед решением необходимо в шаблон задачи вставить ваш токен от Яндекс Диска. Инструкция

Задача при первом входе:

1.1

Демонстрация пустого хранилища:

1.2

При нажатии на кнопку "Предварительная проверка" в хранилище помещается сгенерированный исполняемый файл:

1.3 1.4

Docker, сборка и примеры запуска

Сборка образа

docker build -t perf .

Запуск контейнера в интерактивном режиме

docker run -it perf bash

Примеры создания и проверки задач

Генератор задач на профилирование (Документация)

  1. Поиск n-ой по времени выполнения функции, вызванной из main

    Команды:

    • generators-profiling1 finding_in_main init -o test.out -s 1
      
    • ./test.out
      
    • gprof -bp test.out gmon.out
      
    • generators-profiling1 finding_in_main check -b test.out -a reorganization -s 1
      
  2. Поиск n-ой по времени выполнения функции, вызванной из find_me

    Команды:

    • generators-profiling1 finding_in_find_me init -o test.out -s 1
      
    • ./test.out
      
    • gprof -b test.out gmon.out --graph=find_me
      
    • generators-profiling1 finding_in_find_me check -b test.out -a kilt -s 1
      

Генератор задач на утечку памяти (Документация)

Команды:

  • generators-leak-generator -m 1
    
  • valgrind ./generated/leaks_generated
    
  • generators-leak-generator -m 2
    

Генератор задач на отладку (Документация)

Команды:

  • python3 -m generators.cycle_generator -m 1
    
  • valgrind --leak-check=full ./generators/cycle_generator/generators_files/generated_code_with_cycle
    
  • python3 -m generators.cycle_generator -m 2
    

Metadata

Release files for mse-task-generators 0.3.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for mse-task-generators 0.3.2
File Size Uploaded
mse_task_generators-0.3.2.tar.gz 55.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for mse-task-generators 0.3.2
File Interpreter ABI Platform
mse_task_generators-0.3.2-py3-none-any.whl Python 3 none any Details

Total release size: 118.7 kB

Release files / mse_task_generators-0.3.2.tar.gz

Download URL mse_task_generators-0.3.2.tar.gz
Size 55.8 kB
Tags Source
SHA-256 checksum
How to use checksums
8494aa84167bd877b41caebbdc033ca95c1ea489af494449a3fbef716ffd611f
BLAKE2b-256 checksum
How to use checksums
c84571c0e3bbb9a9f5ef4ecdba18f1bf01deaa1d185973d44617a21bd00c2362
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release files / mse_task_generators-0.3.2-py3-none-any.whl

Download URL mse_task_generators-0.3.2-py3-none-any.whl
Size 62.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
6143b3890582f500625cf27915d22c050ddb7cada9ce0b7bb150e5780ec286d3
BLAKE2b-256 checksum
How to use checksums
230ae6612812973a9dd529bdc8b1f06e26bd1cb593150b262e0ce764c0e8275b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.3.2 This release

2 release files

0.3.1

2 release files

0.3

2 release files

0.2.7

2 release files

0.2.6

2 release files

0.2.5

2 release files

0.2.4

2 release files

0.2.3

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page