Эйч
Эйч
  • Все менторы
Задачи/Go-разработчик/Рефакторинг кода

Рефакторинг кода

Условие задачи

Провести рефакторинг кода

gofunc main() {
    var mem runtime.MemStats

    runtime.ReadMemStats(&mem)
    fmt.Printf("Before get(): Alloc = %v MiB\n", mem.Alloc/1024/1024)

    resOfRes := make([][]int, 0, 100)

    for i := 0; i < 50; i++ {
        res := getLastElem()

        runtime.GC()
        runtime.ReadMemStats(&mem)
        fmt.Printf("After getAll(): Alloc = %v MiB, slice: %v\n", mem.Alloc/1024/1024, res)

        resOfRes = append(resOfRes, res)
    }

    fmt.Println()
    _ = resOfRes

    // Now go into loop
    for i := 0; i < 20000; i++ {
        runtime.GC()
        runtime.ReadMemStats(&mem)
        fmt.Printf("Alloc = %v MiB\n", mem.Alloc/1024/1024)
        time.Sleep(time.Second * 2)
    }

    fmt.Println(resOfRes)
}

func getLastElem() []int {
    sl := make([]int, 0, 100000)

    for i := 0; i < 100000; i++ {
        sl = append(sl, i)
    }

    // return last element
    return sl[99999:]
}

Профессия

Go-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта