Well, the title says it all: I'm wondering what is the reason why the BEAM doesn't garbage collect atoms. I'm aware of question How Erlang atoms can be garbage collected but, while related, it doesn't reply to why.
Why are atoms not garbage collected by the BEAM?
320 Views Asked by mszmurlo At
1
There are 1 best solutions below
Related Questions in ERLANG
- erlang os:cmd() command with UTF8 binary
- Erlang syntax error unclear
- How to index a field with mongodb-erlang
- Erlang Dialyzer: only accept certain integers?
- Erlang spawning large amounts of C processes
- erlang processes and message passing architecture
- Mnesia pagination with fragmented table
- Does Erlang Have Map?
- First word of binary string erlang
- Elixir exrm release crashes on eredis start_link
- Erlang: Returning a function from a function
- How to index existing not-indexed data in riak search?
- Why do I receive a FunctionClauseError ("no function clause matching") in this Elixir program, translated from Erlang?
- How to list all the bucket types in riak?
- oauth2 authentication support in ejabberd
Related Questions in ELIXIR
- Multiline comment in Elixir
- Output tabular data with IO.ANSI
- Does Elixir have coding standards or an authoritative style guide published by the language developers, like PEP8 or the Erlang Programming Rules?
- Check if a URL is valid in elixir
- Elixir exrm release crashes on eredis start_link
- Writing a library that works for BitStrings or Lists
- Elixir exrm console works but application does not start automatically
- Why do I receive a FunctionClauseError ("no function clause matching") in this Elixir program, translated from Erlang?
- Expect-like functionality to IO.gets?
- How to stub (or prevent running) of a call to a worker in my ExUnit test?
- Is Elixir's System.cmd blocking
- Elixir - Nested JSON parsing to structs
- What is the number that shows up after you define an anonymous function in elixir?
- Using System.cmd within a Poolboy worker (gen_server) causes silent failure
- How Can We Clear the Screen in Iex on Windows
Related Questions in BEAM
- Rabbitmq listens on all interfaces
- Why elixir debugger is calling built-in function instead of mine if they have same name
- Erlang Binary Leak?
- Apache Beam Streaming Write/Read BigQuery
- Apache Beam Publish Kafka Message with KafkaIO and KafkaAvroSerialization for GenericRecord
- Why is math so slow in Erlang/the BEAM VM?
- Beam VM Scheduler vs OS Scheduler
- Is gen_server restart strategy copy state?
- Why does the nif function block the Erlang VM from scheduling other processes?
- Why does the following code cause the Erlang HiPE compiler crash?
- How to implement a function to notify a node that the other node quit or not
- Why are atoms not garbage collected by the BEAM?
- merge collection with different window strategy
- Apache Beam - Convert empty Dataframe back to PCollection
- Dependency conflict when upgrading Beam version for Cloud Dataflow Template (Java SDK)
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Because that is not possible (or at least very hard) to do in the current design. Atoms are important part of:
Especially last point makes it hard. Imagine for second that we would have a GC for atoms. What would happen if there would be a GC cleanup in between the distributed call where we send some atoms over the wire? All of that makes atoms quite essential to how VM works and making them GCed would not only make implementation of VM much more complex, it would also make code much slower as atoms do not need to be copied between processes and as these aren't GCed, these can be completely omitted in GC mark step.