Оглавление
Инструкция по развертыванию проекта
Требования к системе
- ОС: 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. Перед решением необходимо в шаблон задачи вставить ваш токен от Яндекс Диска. Инструкция
Задача при первом входе:
Демонстрация пустого хранилища:
При нажатии на кнопку "Предварительная проверка" в хранилище помещается сгенерированный исполняемый файл:
Docker, сборка и примеры запуска
Сборка образа
docker build -t perf .
Запуск контейнера в интерактивном режиме
docker run -it perf bash
Примеры создания и проверки задач
Генератор задач на профилирование (Документация)
-
Поиск 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
-
-
Поиск 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)
| File | Size | Uploaded | |
|---|---|---|---|
| mse_task_generators-0.3.2.tar.gz | 55.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|