GopherCon 2019: Dave Cheney - Two Go Programs, Three Different Profiling Techniques

Поделиться
HTML-код
  • Опубликовано: 27 июл 2024
  • Go, being a relatively recent statically typed, compiled language, is known to produce efficient programs. But writing a program in Go is not sufficient for good performance.
    In this tutorial Dave will demonstrate three different methods of profiling Go programs to diagnose, then improve, the performance of several programs. By the conclusion, you’ll know how to profile the cpu and memory usage of a Go program, understand how to examine an execution trace, and come to grips with the reality of Amdahl’s Law.
  • НаукаНаука

Комментарии • 39

  • @mayurgaitonde5069
    @mayurgaitonde5069 4 года назад +8

    Dave Cheney is the unsung hero of the Go community.

  • @tuliogomes7210
    @tuliogomes7210 2 года назад +4

    Amazing talk! This guy has the ability to present such complex topics in a simple way!

  • @13TheGUNNER
    @13TheGUNNER Год назад +2

    Amazing presentation! I wonder how a software engineer can think of such visual explanations! Hats off.

  • @user-rm4im7em4m
    @user-rm4im7em4m Год назад +1

    Clear message, clear structure, easy to understand, thank you

  • @amitbhaira2492
    @amitbhaira2492 4 года назад +6

    Amazing. Thank you so much for delivering such great presentation.

  • @MrAndrewtux
    @MrAndrewtux 2 года назад +1

    Great talk ! Also I am novice of go and I can understand! Thanks

  • @qishuai3041
    @qishuai3041 2 года назад +1

    great presentation. Thanks

  • @C0DE8
    @C0DE8 4 года назад +1

    Awesome high quality presentation!!! Thanks a lot!

  • @srgpip
    @srgpip 3 года назад +2

    Thank you for providing a great presentation.

  • @macfhlannchadharonan4668
    @macfhlannchadharonan4668 4 года назад +1

    Learnt plenty thanks very much, brilliant presentation!

  • @gl3nda96
    @gl3nda96 2 года назад +1

    Amazing talk and great explanation!

  • @kamal-xd7id
    @kamal-xd7id 3 года назад +1

    Learned a lot from this great talk.

  • @zeinfahrozi7828
    @zeinfahrozi7828 3 года назад +1

    Great talk. I learn something new about Go

  • @blank001
    @blank001 3 года назад

    Great talk man, instead of just showing slides and talking you are showing all the nuts and bolts that makes the program what it is.

  • @barsvelioglu2276
    @barsvelioglu2276 Год назад

    Absolutely amazing talk. Thanks

  • @AndreiDinTheHouse
    @AndreiDinTheHouse 2 года назад

    Amazing. I got a bit stuck at "buffer yourself". I saw this presentation shortly after it was uploaded in 2019 and since then it's become my pet peeve in code reviews as well as sortof catchphrase. "Go buffer yourself".

  • @vaskir3695
    @vaskir3695 3 года назад

    Great talk, especially switching to tracing when cpu profiling gave no clue.

  • @Orww
    @Orww 4 года назад +2

    great talk

  • @MrBlanky666
    @MrBlanky666 3 года назад +1

    Awesome, thanks!

  • @Bagasl
    @Bagasl 2 года назад +1

    One of the best talks ever. Thank you. Your blog is amazing too, love it

  • @cal1686
    @cal1686 3 года назад

    This is bookmark worthy

  • @jfrankogramos6620
    @jfrankogramos6620 4 года назад +9

    nice I love Go

  • @karlpokus
    @karlpokus 4 года назад +2

    Thanks!

  • @DavidAlsh
    @DavidAlsh 2 года назад

    When you started talking about thousands of cores and calculating each row or pixel on a core - I thought you were going to dive into GPU programming 🤣

  • @kalasmournrex1470
    @kalasmournrex1470 2 года назад

    Nice talk. It's kind of infuriating that go doesn't just inline readByte and avoid the heap allocation, though.

  • @xuyangsun7948
    @xuyangsun7948 Год назад

    In my mac air m1,mode row's performance is more better than mode workers, no matter how many workers used

  • @LuadoO
    @LuadoO 2 года назад +1

    I did not get it fully, why on the first part, when Dave moves the buffer declaration to file scope, that avoids that escaping of the buffer to the heap. Why did it escape to the heap? I watched his explanation over and over, but it's still not 100% for me.

    • @LuadoO
      @LuadoO 2 года назад

      Also, brilliant presentation!!!

    • @sebas11tian
      @sebas11tian 2 года назад

      My understanding is that slices work as pointers to a subsection of the underlying array. Because the declaration is only invoked once, there are no memory allocation requests and therefore you are recycling the same memory byte as opposed to asking the OS to give you a new piece of the stack every time you call the function.

    • @sebas11tian
      @sebas11tian 2 года назад

      The compiler, therefore knows what will happen to the array in the stack once the function is closed and therefore it can declare that keeping it in the stack frame is safe and does not require going off to the heap.

  • @LaTekapo
    @LaTekapo 3 года назад +1

    can u share code with us?

  • @andherium
    @andherium 2 года назад

    What were the 3 different profiling techniques ?
    - pprof
    - trace
    - ??

    • @LuadoO
      @LuadoO 2 года назад +1

      Memory, CPU and Trace ma dude

  • @kiselkisel3463
    @kiselkisel3463 Год назад

    Somebody get me link on source code

  • @TheMrKeksLp
    @TheMrKeksLp 4 года назад

    Unix user "dfc" hehe

  • @sm5172
    @sm5172 2 года назад +1

    Excellent talk, enjoyed it very much! Please, more talks like these in 2021 instead of the political social justice BS you decided to sneak into GopherCon 2020.