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 answers
Related Questions in ERLANG
- Using gleam, cannot import 'gleam/otp/process'
- Zig Concurrency Vs Erlang Concurrency, is Zig less efficient than Erlang?
- Creaating a new Key Value dict from previous dict
- How to execute an exit function before closing rebar3 shell?
- rebar3 does not compile anything in `src` directory
- Ejabberd Migration from 23 to 24
- How to use compiled erlang modules in an elixir project?
- ejabberd_sql:handle_reconnect/2:491 odbc connection failed ejabberd
- Lisp Flavored Erlang: Can't find include lib include/ltest-macros.lfe
- Signing key for RabbitMQ
- Rabbitmq fails to start and getting Erlang eaacces error
- Erlang: binary_to_term explanation
- How to extend emqx clientInfo to get more fields during HTTP Authorization
- Transforming `erl_parse:abstract_form()` to `erl_syntax:syntaxTree()`
- Who is the sender of Erlang's trace messages and what can I assume based on it?
Related Questions in ELIXIR
- Phoenix in a docker dev environment - generated code can't be saved from VSCode
- Microsoft Teams, Graph API, send message to channel InsufficientPrivileges MessageWritesBlocked-Thread is not marked for import
- Can someone tell me what's wrong with mi Task.await?
- Is there a Sonar-Elixir plugin compatible with SonarQube 10.4.1?
- How to use Elixir pattern matching to check if a list's item startswith a given string(in a variable)?
- Error `unknown application: :nif_bartender` when compiling Elixir NIF
- How to use compiled erlang modules in an elixir project?
- OnVif authentication failed for Milesight camera
- Debugging Boggle Solver Implemented in Elixir with Trie Structure
- Elixir Enum.group_by converts integers to ASCII Chars
- Disambiguate "arity denotation" and "arithmetic division" in Elixir
- LiveView [LiveMotion] Motion element not found, make your target a LiveMotion.motion component
- What exactly is flushed by flush/0 in Elixir?
- Attempting to understand the difference in computed result for a Math.imul (javascript) recreation in Elixir
- Cronjob does not work for the local asdf elixir path
Related Questions in BEAM
- PulsarIO.read() failing with AutoValue_PulsarSourceDescriptor not found
- How to use compiled erlang modules in an elixir project?
- Event sourcing with CDC and stream processing
- ModuleNotFoundError message when run gcp dataflow pipeline with python
- Who is the sender of Erlang's trace messages and what can I assume based on it?
- When using Apache Beam locally, how to utilize persistant caching for queries in BigQuery?
- State in Singleton object changes between workers in Scala
- How does elixir performs slicing
- Can I load compressed jsonl data from GCS to BigQuery and add an additional date column using DataFlow
- Apache beam data trigger when using event time trigger
- Apache Beam Publish Kafka Message with KafkaIO and KafkaAvroSerialization for GenericRecord
- Apache Beam Streaming Write/Read BigQuery
- Programmatic Retrieval of Job Information with 'workerDiskType' from Google Cloud Console
- Configuring pipeline options in Apache Beam - Touring example fails
- Spark Task Data loss after worker dies in Java
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?
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)
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.