8. Тайловый бэкенд
- Карта состоит из тайлов
- Используются различные источники
данных
- Используется специализированная
библиотека Mapnik (написана на C++)
- Генерация тайлов занимает
существенное время
9. Тайловый бэкенд
- Часть тайлов генерируется заранее в
пакетном режиме
- Часть - по требованию
13. Особенности :-)
- Учитывает особенности строения
адресного пространства (вложенность
объектов)
- “Угадывает мысли” (учитывает
подразумеваемый контекст)
- Различает “близко” и “далеко”, “большой”
и “маленький”
19. Что нам дает Go
- Скорость разработки
- Простота обучения
- Тестируемый код
20. Что нам дает Go
- Скорость выполнения
- Скорость компиляции
- Стандартная библиотека
- Tools
gofmt, gorename, cover, pprof, expvar
gotype, golint, vet, errcheck
26. Данные в памяти и GC
Где прячутся указатели
- указатели
- мапы
- слайсы
- строки
- интерфейсы
- ...
27. Данные в памяти и GC
Как уменьшить длительность stop-the-world
- индекс массива вместо указателей
- строки положить в один большой []byte
type PString struct {
Offset: uint32
Lenghth: uint32
}
28. Данные в памяти и GC
Как уменьшить длительность stop-the-world
- mmap
- генерация кода с константами
var data = map[string]int{
"a":1,
"b":2,
...