Changes
Jump to navigation
Jump to search
Line 15:
Line 15:
+
+
no edit summary
* your slow code has a direct impact on power consumption, and its usability. Applications that run CPU bound will be very, very unpopular on battery powered machines that may be powered by children having to run a generator.
* your slow code has a direct impact on power consumption, and its usability. Applications that run CPU bound will be very, very unpopular on battery powered machines that may be powered by children having to run a generator.
* the file system is a flash file system, so its write performance is slow, while random access is actually very good. The performance is glacial if the file system is low on space and has to continually erase freed blocks before writing (jffs2 attempts to do this in the background, but if it can't....). Programs that continually write to the file system without need are anti-social; wear leveling helps flash longevity, but it certainly doesn't help, and burns power.
* the file system is a flash file system, so its write performance is slow, while random access is actually very good. The performance is glacial if the file system is low on space and has to continually erase freed blocks before writing (jffs2 attempts to do this in the background, but if it can't....). Programs that continually write to the file system without need are anti-social; wear leveling helps flash longevity, but it certainly doesn't help, and burns power.
* looping waiting for events eats power; don't do it. Poll and select with timeouts are your friends. Don't gratuitously wake up at frequent intervals just to test if something has happened; design your hardware and software to be completely idle between events they have to respond to.
* presuming that you can contact a server for service will often not be possible. Design applications to be peer-to-peer, or to self elect servers in a local cloud of people working together. We can presume at least some technology like mDNS (e.g. Avahi) is available for discovery.
This page is a stub. Please expand on it.
This page is a stub. Please expand on it.