Lemmy.one
  • Communities
  • Create Post
  • heart
    Support Lemmy
  • search
    Search
  • Login
  • Sign Up
JPDev@programming.dev to Programmer Humor@programming.dev · 2 years ago

Sleep() at home

programming.dev

message-square
31
fedilink
614

Sleep() at home

programming.dev

JPDev@programming.dev to Programmer Humor@programming.dev · 2 years ago
message-square
31
fedilink
alert-triangle
You must log in or # to comment.
  • EisFrei@lemmy.world
    link
    fedilink
    arrow-up
    90
    ·
    2 years ago

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

    • tryptaminev 🇵🇸 🇺🇦 🇪🇺@feddit.de
      link
      fedilink
      arrow-up
      23
      ·
      2 years ago

      This is brilliant.

  • bangupjobasusual@sh.itjust.works
    link
    fedilink
    arrow-up
    83
    ·
    2 years ago

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

    • ryannathans@aussie.zone
      link
      fedilink
      arrow-up
      28
      ·
      2 years ago

      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
        ·
        2 years ago

        asm(“nop”);

    • Midnight Wolf@lemmy.world
      link
      fedilink
      English
      arrow-up
      17
      ·
      2 years ago

      Homer: “oh yeah speed holes sleep”

      • jaybone@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        2 years ago

        Sleep holes

  • Darkassassin07@lemmy.ca
    link
    fedilink
    English
    arrow-up
    71
    ·
    2 years ago

    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
      ·
      2 years ago

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

      • leclownfou@sh.itjust.works
        link
        fedilink
        arrow-up
        5
        ·
        2 years ago

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

    • Kogasa@programming.dev
      link
      fedilink
      arrow-up
      25
      ·
      2 years ago

      Have you considered a career in middle management

  • aksdb@lemmy.world
    link
    fedilink
    arrow-up
    26
    ·
    2 years ago

    On microcontrollers that might be a valid approach.

    • kevincox@lemmy.ml
      link
      fedilink
      arrow-up
      11
      ·
      2 years ago

      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
        ·
        2 years ago

        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
      ·
      2 years ago

      But then I gotta buy a space heater too…

      • YIj54yALOJxEsY20eU@lemm.ee
        link
        fedilink
        arrow-up
        4
        ·
        2 years ago

        Microcontrollers run 100% of the time even while sleeping.

        • towerful@programming.dev
          link
          fedilink
          arrow-up
          5
          ·
          2 years ago

          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
            2 years ago

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

  • Matty_r@programming.dev
    link
    fedilink
    arrow-up
    13
    ·
    2 years ago

    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
      ·
      2 years ago

      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
    2 years ago

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

  • Dr. Moose@lemmy.world
    link
    fedilink
    English
    arrow-up
    11
    ·
    edit-2
    2 years ago

    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
      ·
      2 years ago

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

    • KairuByte@lemmy.dbzer0.com
      link
      fedilink
      arrow-up
      2
      ·
      2 years ago

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

  • ExtraMedicated@lemmy.world
    link
    fedilink
    English
    arrow-up
    5
    ·
    2 years ago

    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
      ·
      2 years ago

      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
        ·
        2 years ago

        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
          ·
          2 years ago

          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
    ·
    2 years ago

    You gotta measure the latency of the first loop.

  • lauha
    link
    fedilink
    arrow-up
    4
    ·
    edit-2
    2 months ago

    deleted by creator

  • Bronco1676@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    2 years ago

    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
    ·
    2 years ago

    deleted by creator

  • No_Ones_Slick_Like_Gaston@lemmy.world
    link
    fedilink
    arrow-up
    1
    ·
    2 years ago

    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.

  • 2.77K users / day
  • 5.54K users / week
  • 8.86K users / month
  • 19.7K users / 6 months
  • 197 local subscribers
  • 25.8K subscribers
  • 1.67K Posts
  • 61.9K 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