Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation since 05/29/2026 in all areas

  1. Technically it is a resource collector, but not exactly in the same way typical garbage collectors work. Normal garbage collectors work in a way where the runtime system somehow tracks variables usage at runtime by monitoring when they get out of runtime scope and then attempts to deallocate any variable that is not a value type in terms of the stack space or scope space it consumes. The LabVIEW resource collector works in a slightly different way in that whenever a refnum gets created, it is registered together with the current top level VI in the call chain and a destroy callback with a refnum resource manager. When a top level VI stops executing, both by being aborted or simply executing its last diagram element, it informs the refnum resource manager that it goes idle, and that will then make the refnum resource manager scan its registered refnums to see if any is associated with that top level VI and if so, call its destroy callback. So while it is technically not a garbage collector in the exact same way as what Java or .Net does, it still is for most practical purposes a garbage collector. The difference is, that a refnum can be passed to other execution hierarchies through globals and similar and as such might still be used elsewhere, so technically isn't really garbage yet. There are three main solutions for this: 1) Don't create the refnum in an unrelated VI hierarchy to be passed to another hierarchy for use 2) If you do create it in one VI hierarchy for use in another, keep the initial hierarchy non-idle (running) until you do not need that refnum anymore anywhere. 3) If the refnum is a resource that can be named (eg. Queues, Notifiers) obtain a seperate refnum to the named resource in each hierarchy. The underlying object will stay alive for as long as at least one refnum is still valid. Each obtained refnum is an independent reference to the object and destroying one (implicit or explicit) won't destroy any of the other refnums.
    1 point
  2. Well, yes and no and yes and maybe. It all depends on what you're trying to measure and what the system requirements are. And, of course, just because it's cheaper up front doesn't mean it's cheaper overall. If it costs $200 less but takes me 50 hours longer to implement then it costs more.
    1 point
  3. This seems to work... CRC16-CCITT-FALSE.vi
    1 point
  4. Version (latest version 5.5)

    2,803 downloads

    (latest version 5.5 - November 3, 2015 - LabVIEW 2010) Chess Game with artificial intelligence 100% LabVIEW AI : algorithm MinMax + Alpha-Beta pruning two game levels : "novice" and "Jedi" editing interface (edit on/off) a) moving mode : left-clic on the starting square, left-clic on the destination square b) positioning mode : right-clic on a square opens a context menu to choice the piece. This engine 5.5 is stronger than the previous engine 5.0 (Jedi level) unzip - run "Chess_ouadji.vi" Have fun! ouadji, if you like this Chess Game, a kudo is most welcome! (here - first post)
    1 point
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.