Below you will find pages that utilize the taxonomy term “profiling”
Posts
벤치마크와 프로파일링의 결과가 서로 상충될때
작업하고 있는 goguelike2에서 사용하는 작은 패키지 하나를 github 공개 repository 에 올렸습니다.
https://github.com/kasworld/wrapper
인데
내용을 보면 뭐 이런 간단한 걸 올린 것일까? 하고 생각할만한 패키지입니다.
패키지의 기능은 최대 값이 있는 정수가 범위를 벗어 나지 않도록 wrap around 해주는 것입니다.
실제 사용은 오른 쪽 끝을 넘어가면 왼쪽으로 나와서 무한해 보이는 필드 를 만들기 위한 기능을 제공하기 위해서 만든 것인데.
원래는 func WrapInt(v, l int) int { return (v%l + l) % l }
Posts
go 언어에서 메모리 사용 프로파일링 하기.
이전에 cpu profile 하는 글을 썼지만 http://kasw.blogspot.kr/2015/02/go-profiling_4.html
이번에는 memory profile을 하기 위한 수정을 했습니다.
시작과 끝을 지정해야하는 cpu profile과는 달리 memory profile은 현상태의 snapshot을 떠내는 형태로 사용하게 됩니다.
프로파일을 위한 shell script는
//start
#!/usr/bin/env sh
PRGNAME="$1"
shift
go build ${PRGNAME}.go
./${PRGNAME} -memprofilename ${PRGNAME}.mprof $*
go tool pprof ${PRGNAME} ${PRGNAME}.mprof
rm ${PRGNAME}.mprof
//end
과 같고,
실제 프로그램에서 사용할때는
//start
package main
import (
"flag"
"fmt"
"log"
"math/rand"
"os"
"runtime"
"runtime/pprof"
"time"
)
func init() {
rand.
Posts
go 언어에서 profiling 하기
python도 그렇지만 go언어도 기본적으로 profiler를 제공합니다만, 정작 쓰려면 약간 귀찮은 관계로 제가 만들어 두고 거의 cut/paste 해서 사용하는 방법입니다.
아래 코드는 간단한 프로그램을 짤때 복사해 쓰는 파일의 내용입니다. 뭔가 파일 하나 짜리 프로그램을 짜서 테스트 할때 사용하곤 합니다.
이 자체로도 실행가능한 형태이며 그냥 실행하면 프로파일링이 실행되진 않고 더 아래에 있는 쉘 스크립트를 사용하거나 인자로 -pfilename을 주면 됩니다.
실행이 끝나면 자동으로 프로파일러가 실행되어 command를 기다리는 형태가 됩니다.
간단하게 프로파일 결과를 보고 싶으면 top30 같은 형태로 top + 수자 ( 빈칸 없이) 를 실행하면 됩니다.