Skip to content
Snippets Groups Projects
  1. Aug 30, 2017
  2. Jul 31, 2017
  3. Sep 21, 2016
  4. Jul 20, 2016
    • Paul Sokolovsky's avatar
      py/gc: Implement GC running by allocation threshold. · 93e353e3
      Paul Sokolovsky authored
      Currently, MicroPython runs GC when it could not allocate a block of memory,
      which happens when heap is exhausted. However, that policy can't work well
      with "inifinity" heaps, e.g. backed by a virtual memory - there will be a
      lot of swap thrashing long before VM will be exhausted. Instead, in such
      cases "allocation threshold" policy is used: a GC is run after some number of
      allocations have been made. Details vary, for example, number or total amount
      of allocations can be used, threshold may be self-adjusting based on GC
      outcome, etc.
      
      This change implements a simple variant of such policy for MicroPython. Amount
      of allocated memory so far is used for threshold, to make it useful to typical
      finite-size, and small, heaps as used with MicroPython ports. And such GC policy
      is indeed useful for such types of heaps too, as it allows to better control
      fragmentation. For example, if a threshold is set to half size of heap, then
      for an application which usually makes big number of small allocations, that
      will (try to) keep half of heap memory in a nice defragmented state for an
      occasional large allocation.
      
      For an application which doesn't exhibit such behavior, there won't be any
      visible effects, except for GC running more frequently, which however may
      affect performance. To address this, the GC threshold is configurable, and
      by default is off so far. It's configured with gc.threshold(amount_in_bytes)
      call (can be queries without an argument).
      93e353e3
  5. Dec 17, 2015
  6. Nov 29, 2015
  7. Oct 11, 2015
  8. Feb 07, 2015
  9. Jan 07, 2015
  10. Jan 01, 2015
  11. Nov 29, 2014
  12. Oct 31, 2014
  13. Aug 10, 2014
  14. Jul 31, 2014
  15. Jul 03, 2014
  16. Jun 25, 2014
  17. Jun 21, 2014
  18. Jun 19, 2014
  19. Jun 06, 2014
  20. Jun 05, 2014
  21. May 24, 2014
  22. May 08, 2014
  23. May 05, 2014
  24. May 03, 2014
    • Damien George's avatar
      Add license header to (almost) all files. · 04b9147e
      Damien George authored
      Blanket wide to all .c and .h files.  Some files originating from ST are
      difficult to deal with (license wise) so it was left out of those.
      
      Also merged modpyb.h, modos.h, modstm.h and modtime.h in stmhal/.
      04b9147e
  25. Apr 26, 2014
  26. Apr 05, 2014
  27. Apr 03, 2014
    • Paul Sokolovsky's avatar
      py: Add "io" module. · 98a627dc
      Paul Sokolovsky authored
      So far just includes "open" function, which should be supplied by a port.
      
      TODO: Make the module #ifdef'ed.
      98a627dc
Loading