タグ

Goに関するhoppieのブックマーク (7)

  • Golang パフォーマンスチューニング - Qiita

    この記事は Go Advent Calendar 2014 17 日目の記事です。 Go におけるパフォーマンスチューニングの話をします。 これらは Denco や Kocha などでのパフォーマンスチューニングの経験などから得た知見です。 処理系の話ではありませんのでご了承ください。 前提 プロファイリングを取った後、じゃあどうやって最適化するかというところの話です 「推測するな、計測せよ」 アルゴリズムやデータ構造は最適なものが選択されていると仮定します 小手先の最適化を行うよりアルゴリズム自体を変えたほうが圧倒的に良くなります。 この記事の各ベンチマークは Go 1.4 (go version go1.4 linux/amd64)で下記のコマンドにて取っています

    Golang パフォーマンスチューニング - Qiita
    hoppie
    hoppie 2017/11/18
  • Go言語感想文 - なるせにっき

    序 最近、敵情視察を兼ねた仕事ととしてGoでアプリケーションを書いていた。このアプリケーションがどんなものかはそのうちid:tagomorisさんがどこかで話すと思うけれど、このコンポーネントがOSS化される予定はいまのところないので、そこで得た知見をここにまとめておくことにする。 GoroutineとChannel さて、GoといえばGoroutineとChannelですね。 Goroutineはようするにスレッドなんですが、文法と実装の支援でより気軽に使えるのが他の言語との違いでしょうか。なので、Goroutineをどれだけほいほい使うべきかというコスト感覚を身につけることがとても大事な気がします。Rubyなどとは気持ちを切り替えていく必要があるでしょう。ぼくはまだ切り替えきれていません。 もう一つがChannelですね。これは端的にはメッセージキューです。 Goは前述の通り同時に動く

    Go言語感想文 - なるせにっき
    hoppie
    hoppie 2017/06/02
  • Go の Test に対する考え方 - Qiita

    Go の Test に対する考え方 この記事は Go Advent Calendar 2013 の 9 日目の投稿です。 今回は、 Go の testing というパッケージの使い方を解説しようと思ったのですが、 それだとつまらなすぎるので、合わせて Go が test というか assert についてどういうスタンスをとっているかを書いてみます。 Go でテスト さて、「テストのないコードはレガシーコード」などと言われて久しく、様々な言語が test (主に Unittest) について言語レベルでサポートしたり、デファクトなライブラリが確立したりといった状況が、今日では至って普通のこととなっています。 そんな言語や環境で、息をするようにテストを書いてきたみなさんが、はじめて Go でコードを書く時に見るべきは testing パッケージです。 http://golang.org/pkg

    Go の Test に対する考え方 - Qiita
    hoppie
    hoppie 2016/01/03
  • GoのExampleテストが便利

    Goでは、Example用のコードをgodocに表示させたり、テストとして実行して結果をチェックをすることができます。Example用のコードを書いて、それをドキュメントにコピペする作業や、その内容が古くなって動かないということから開放してくれます。 この仕組についてはtestingパッケージに説明があります。 testing - The Go Programming Language http://golang.org/pkg/testing/ 実際に適当なパッケージを作って試してみます。パッケージ名をexexとします。 $ mkdir -p go-example-example/src/exex $ cd go-example-example $ export GOPATH=`pwd` 適当に関数や構造体を用意します。 go-example-example/src/exex/hello

    GoのExampleテストが便利
    hoppie
    hoppie 2016/01/03
  • Writing Ruby extensions in Go – an in depth review

    For a very long time the only way to extend Ruby with native estensions has been using C. I don’t have the numbers with me, but I guess C is not the first choice for Ruby programmers when they have to pick up a secondary/complentary language. So I started investigating the possibility of writing them in other languages, taking advantage of the favorable moment: in the past 3-4 years we had an expl

    Writing Ruby extensions in Go – an in depth review
    hoppie
    hoppie 2015/10/16
  • Big Sky :: Vim プラグインの機能として golang を使う。

    golang 1.5 から、x86_64 のみですが -buildmode=c-shared というビルドオプションが足される事になりました。 これは、golang で共有ライブラリを生成する為のオプションで、例えば package main import ( "C" "fmt" ) var ( c chan string ) func init() { c = make(chan string) go func() { n := 1 for { switch { case n%15 == 0: c <- "FizzBuzz" case n%3 == 0: c <- "Fizz" case n%5 == 0: c <- "Buzz" default: c <- fmt.Sprint(n) } n++ } }() } //export fizzbuzz func fizzbuzz(n int

    Big Sky :: Vim プラグインの機能として golang を使う。
    hoppie
    hoppie 2015/06/09
  • Getting Started with Go on Heroku

    Getting Started with Go on Heroku September 25 2012, updated January 1 2014 If you’re interested in Go, be sure to check out Go by Example. Go is a general-purpose language for building simple, reliable, and fast software. It’s fun to write and a good fit for many use cases including web apps, network services, and command-line tools. This quickstart will show you how to run Go apps and deploy the

  • 1