Lemmy.one
  • Communities
  • Create Post
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
JPDev@programming.dev to Programmer Humor@programming.dev · il y a 3 ans

Sleep() at home

programming.dev

message-square
31
fedilink
615

Sleep() at home

programming.dev

JPDev@programming.dev to Programmer Humor@programming.dev · il y a 3 ans
message-square
31
fedilink
alert-triangle
You must log in or # to comment.
  • EisFrei@lemmy.world
    link
    fedilink
    arrow-up
    89
    ·
    il y a 3 ans

    Ah yes. The speedup-loop.
    https://thedailywtf.com/articles/The-Speedup-Loop

    • tryptaminev 🇵🇸 🇺🇦 🇪🇺@feddit.de
      link
      fedilink
      arrow-up
      22
      ·
      il y a 3 ans

      This is brilliant.

  • bangupjobasusual@sh.itjust.works
    link
    fedilink
    arrow-up
    83
    ·
    il y a 3 ans

    I think some compilers will just drop that in the optimization step.

    • ryannathans@aussie.zone
      link
      fedilink
      arrow-up
      28
      ·
      il y a 3 ans

      Real pain in the ass when you’re in embedded and your carefully placed NOPs get stripped

      • vrighter@discuss.tchncs.de
        link
        fedilink
        arrow-up
        5
        ·
        il y a 3 ans

        asm(“nop”);

    • Midnight Wolf@lemmy.world
      link
      fedilink
      English
      arrow-up
      17
      ·
      il y a 3 ans

      Homer: “oh yeah speed holes sleep”

      • jaybone@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        il y a 3 ans

        Sleep holes

  • Darkassassin07@lemmy.ca
    link
    fedilink
    English
    arrow-up
    71
    ·
    il y a 3 ans

    Tell the CPU to wait for you?

    Na, keep the CPU busy with useless crap till you need it.

    • jaybone@lemmy.world
      link
      fedilink
      arrow-up
      27
      ·
      il y a 3 ans

      Fuck those other processes. I want to hear that fan.

      • leclownfou@sh.itjust.works
        link
        fedilink
        arrow-up
        5
        ·
        il y a 3 ans

        I paid good money for my fan, I want to know it’s working!

    • Kogasa@programming.dev
      link
      fedilink
      arrow-up
      25
      ·
      il y a 3 ans

      Have you considered a career in middle management

  • aksdb@lemmy.world
    link
    fedilink
    arrow-up
    26
    ·
    il y a 3 ans

    On microcontrollers that might be a valid approach.

    • kevincox@lemmy.ml
      link
      fedilink
      arrow-up
      11
      ·
      il y a 3 ans

      I’ve written these cycle-perfect sleep loops before.

      It gets really complicated if you want to account for time spent in interrupt handlers.

      • aksdb@lemmy.world
        link
        fedilink
        arrow-up
        2
        ·
        il y a 3 ans

        Thankfully I didn’t need high precision realtime. I just needed to wait a few seconds for serial comm.

    • Darkassassin07@lemmy.ca
      link
      fedilink
      English
      arrow-up
      1
      ·
      il y a 3 ans

      But then I gotta buy a space heater too…

      • YIj54yALOJxEsY20eU@lemm.ee
        link
        fedilink
        arrow-up
        4
        ·
        il y a 3 ans

        Microcontrollers run 100% of the time even while sleeping.

        • towerful@programming.dev
          link
          fedilink
          arrow-up
          5
          ·
          il y a 3 ans

          Nah, some MCUs have low power modes.
          ESP32 has 5 of them, from disabling fancy features, throttling the clock, even delegating to an ultra low power coprocessor, or just going to sleep until a pin wakes it up again. It can go from 240mA to 150uA and still process things, or sleep for only 5uA.

          • YIj54yALOJxEsY20eU@lemm.ee
            link
            fedilink
            arrow-up
            3
            ·
            edit-2
            il y a 3 ans

            Nah, Sleeping != Low power mode. The now obsolete ATmega328 has a low power mode.

  • Matty_r@programming.dev
    link
    fedilink
    arrow-up
    13
    ·
    il y a 3 ans

    This should be the new isEven()/isOdd(). Calculate the speed of the CPU and use that to determine how long it might take to achieve a ‘sleep’ of a required time.

    • henfredemars@infosec.pub
      link
      fedilink
      English
      arrow-up
      12
      ·
      il y a 3 ans

      I took an embedded hardware class where specifically we were required to manually calculate our sleeps or use interrupts and timers rather than using a library function to do it for us.

  • vcmj@programming.dev
    link
    fedilink
    arrow-up
    11
    ·
    edit-2
    il y a 3 ans

    Its a thing. https://en.m.wikipedia.org/wiki/Busy_waiting

  • Dr. Moose@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    il y a 3 ans

    Javascript enters chat:

    await new Promise(r => setTimeout(r, 2000));
    

    Which is somehow even worse.

    • sbv@sh.itjust.works
      link
      fedilink
      English
      arrow-up
      4
      ·
      il y a 3 ans

      As someone who likes to use the CPU, I don’t think it’s worse.

    • KairuByte@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      2
      ·
      il y a 3 ans

      I mean, it’s certainly better than pre-2015.

  • ExtraMedicated@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    il y a 3 ans

    I actually remember the teacher having us do this in high school. I tried it again a few years later and it didn’t really work anymore.

    • snaggen@programming.dev
      link
      fedilink
      arrow-up
      13
      ·
      il y a 3 ans

      On my first programming lesson, we were taught that 1 second sleep was for i = 1 to 1000 😀, computers was not that fast back then…

      • ferret@sh.itjust.works
        link
        fedilink
        English
        arrow-up
        3
        ·
        il y a 3 ans

        I mean maybe in an early interpreted language like BASIC… even the Intel 8086 could count to 1000 in a fraction of a second

        • snaggen@programming.dev
          link
          fedilink
          arrow-up
          5
          ·
          il y a 3 ans

          This was in 1985, on a ABC80, a Swedish computer with a 3 MHz CPU. So, in theory it would be much faster, but I assume there were many performance losses (slow basic interpretor and thing like that) so that for loop got close enough to a second for us to use.

          https://en.m.wikipedia.org/wiki/ABC_80

  • Socsa@sh.itjust.works
    link
    fedilink
    arrow-up
    4
    ·
    il y a 3 ans

    You gotta measure the latency of the first loop.

  • lauha
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    il y a 1 an

    deleted by creator

  • Bronco1676@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    il y a 3 ans

    I just measured it, and this takes 0.17 seconds. And it’s really reliable, I added another zero to that number and it was 1.7 seconds

  • hexaflexagonbear [he/him]@hexbear.net
    link
    fedilink
    English
    arrow-up
    1
    ·
    il y a 3 ans

    deleted by creator

  • No_Ones_Slick_Like_Gaston@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    il y a 3 ans

    Sudo sleep

Programmer Humor@programming.dev

programmer_humor@programming.dev

Subscribe from Remote Instance

Create a post
You are not logged in. However you can subscribe from another Fediverse account, for example Lemmy or Mastodon. To do this, paste the following into the search field of your instance: !programmer_humor@programming.dev

Welcome to Programmer Humor!

This is a place where you can post jokes, memes, humor, etc. related to programming!

For sharing awful code theres also Programming Horror.

Rules

  • Keep content in english
  • No advertisements
  • Posts must be related to programming or programmer topics
Visibility: Public
globe

This community can be federated to other instances and be posted/commented in by their users.

  • 322 users / day
  • 3.14K users / week
  • 7.48K users / month
  • 16.3K users / 6 months
  • 199 local subscribers
  • 32.8K subscribers
  • 2.52K Posts
  • 98.8K Comments
  • Modlog
  • mods:
  • Feyter@programming.dev
  • adr1an@programming.dev
  • BurningTurtle@programming.dev
  • Pierre-Yves Lapersonne@programming.dev
  • BE: 0.19.7
  • Modlog
  • Legal
  • Instances
  • Docs
  • Code
  • join-lemmy.org