init elowdb go-port commit
This commit is contained in:
205
USAGE.md
Normal file
205
USAGE.md
Normal file
@@ -0,0 +1,205 @@
|
||||
# Инструкция по использованию отладочных инструментов LineDB
|
||||
|
||||
## 🎯 Быстрый старт
|
||||
|
||||
### 1. Отладка в VS Code (рекомендуется)
|
||||
|
||||
1. Откройте проект в VS Code
|
||||
2. Нажмите `F5` или выберите "Run and Debug" в боковой панели
|
||||
3. Выберите одну из конфигураций:
|
||||
- **Debug LineDB Debug App** - отладка основного приложения
|
||||
- **Debug LineDB Simple Test** - отладка простого теста
|
||||
- **Debug LineDB Tests** - отладка тестов
|
||||
- **Debug LineDB Example** - отладка примера
|
||||
|
||||
### 2. Отладка через командную строку
|
||||
|
||||
```bash
|
||||
# Отладка основного приложения
|
||||
make debug-simple
|
||||
|
||||
# Отладка основного теста
|
||||
make debug-main
|
||||
|
||||
# Отладка тестов
|
||||
make debug-tests
|
||||
|
||||
# Отладка примера
|
||||
make debug-example
|
||||
```
|
||||
|
||||
### 3. Отладка через скрипт
|
||||
|
||||
```bash
|
||||
# Отладка основного приложения
|
||||
./debug.sh simple
|
||||
|
||||
# Отладка основного теста
|
||||
./debug.sh main
|
||||
|
||||
# Отладка тестов
|
||||
./debug.sh tests
|
||||
|
||||
# Отладка примера
|
||||
./debug.sh example
|
||||
```
|
||||
|
||||
## 📁 Файлы для отладки
|
||||
|
||||
### debug_app.go
|
||||
|
||||
Основной файл для отладки с подробной информацией:
|
||||
|
||||
- Инициализация базы данных
|
||||
- Вставка данных
|
||||
- Чтение данных
|
||||
- Фильтрация
|
||||
- Обновление данных
|
||||
- Подробные логи каждого шага
|
||||
|
||||
### debug_main.go
|
||||
|
||||
Альтернативный тест с базовой функциональностью
|
||||
|
||||
### simple.go
|
||||
|
||||
Простой тест для быстрой проверки
|
||||
|
||||
### tests/linedb_test.go
|
||||
|
||||
Официальные тесты проекта
|
||||
|
||||
## 🔧 Команды отладки
|
||||
|
||||
### VS Code
|
||||
|
||||
- `F5` - Запуск отладки
|
||||
- `F9` - Установить/снять точку останова
|
||||
- `F10` - Следующая строка (Step Over)
|
||||
- `F11` - Войти в функцию (Step Into)
|
||||
- `Shift+F11` - Выйти из функции (Step Out)
|
||||
- `Ctrl+Shift+F5` - Перезапуск отладки
|
||||
- `Shift+F5` - Остановка отладки
|
||||
|
||||
### Delve (dlv)
|
||||
|
||||
```bash
|
||||
# Основные команды
|
||||
break main.main # Точка останова в main
|
||||
break pkg/linedb/line_db.go:30 # Точка останова на строке 30
|
||||
continue # Продолжить выполнение
|
||||
next # Следующая строка
|
||||
step # Войти в функцию
|
||||
print variable # Вывести значение переменной
|
||||
vars # Показать все переменные
|
||||
goroutines # Показать горутины
|
||||
stack # Показать стек вызовов
|
||||
quit # Выйти из отладчика
|
||||
```
|
||||
|
||||
## 🎯 Ключевые точки останова
|
||||
|
||||
### Рекомендуемые места для установки точек останова
|
||||
|
||||
```go
|
||||
// Инициализация базы данных
|
||||
pkg/linedb/line_db.go:61
|
||||
|
||||
// Вставка данных
|
||||
pkg/linedb/line_db.go:140
|
||||
|
||||
// Чтение данных
|
||||
pkg/linedb/line_db.go:123
|
||||
|
||||
// Фильтрация
|
||||
pkg/linedb/line_db.go:343
|
||||
|
||||
// Обновление данных
|
||||
pkg/linedb/line_db.go:307
|
||||
|
||||
// Удаление данных
|
||||
pkg/linedb/line_db.go:330
|
||||
```
|
||||
|
||||
## 🐛 Отладка проблем
|
||||
|
||||
### Программа зависает
|
||||
|
||||
```bash
|
||||
# Проверьте кэш и очистите данные
|
||||
make clean
|
||||
make run-simple
|
||||
```
|
||||
|
||||
### Ошибки при работе с файлами
|
||||
|
||||
```bash
|
||||
# Проверьте права доступа
|
||||
ls -la testdata/
|
||||
|
||||
# Создайте папку заново
|
||||
mkdir -p testdata
|
||||
```
|
||||
|
||||
### Ошибки кэша
|
||||
|
||||
```bash
|
||||
# Проверьте размер кэша в коде
|
||||
# Убедитесь, что TTL установлен корректно
|
||||
```
|
||||
|
||||
## 📊 Мониторинг производительности
|
||||
|
||||
### Проверка кэша
|
||||
|
||||
```go
|
||||
// В коде добавьте:
|
||||
fmt.Printf("Cache size: %d\n", db.GetActualCacheSize())
|
||||
fmt.Printf("Cache limit: %d\n", db.GetLimitCacheSize())
|
||||
```
|
||||
|
||||
### Проверка памяти
|
||||
|
||||
```bash
|
||||
# Запустите с профилированием
|
||||
go run -memprofile=mem.prof debug_app.go
|
||||
go tool pprof mem.prof
|
||||
```
|
||||
|
||||
## 🔍 Полезные команды
|
||||
|
||||
### Makefile
|
||||
|
||||
```bash
|
||||
make help # Показать все команды
|
||||
make clean # Очистить данные
|
||||
make build # Собрать проект
|
||||
make test # Запустить тесты
|
||||
make lint # Проверить код
|
||||
make fmt # Форматировать код
|
||||
```
|
||||
|
||||
### Скрипт отладки
|
||||
|
||||
```bash
|
||||
./debug.sh # Показать справку
|
||||
./debug.sh simple # Отладка основного приложения
|
||||
./debug.sh main # Отладка основного теста
|
||||
./debug.sh tests # Отладка тестов
|
||||
./debug.sh example # Отладка примера
|
||||
```
|
||||
|
||||
## 📖 Дополнительная документация
|
||||
|
||||
- `DEBUG.md` - Полная документация по отладке
|
||||
- `QUICK_DEBUG.md` - Краткая инструкция
|
||||
- `OPTIMIZATION_SUMMARY.md` - Резюме оптимизаций
|
||||
|
||||
## 🚀 Советы по эффективной отладке
|
||||
|
||||
1. **Используйте VS Code** для удобной отладки с графическим интерфейсом
|
||||
2. **Устанавливайте точки останова** в ключевых местах кода
|
||||
3. **Изучите переменные** во время отладки для понимания состояния
|
||||
4. **Используйте логи** для отслеживания выполнения
|
||||
5. **Проверяйте кэш** при проблемах с производительностью
|
||||
6. **Очищайте данные** между тестами с помощью `make clean`
|
||||
Reference in New Issue
Block a user