I'm using SignalR for a real time data ticker with up to 10k rows contained in a single object being sent to the client per sec. The memory of IIS worker processor goes on increasing until the ticking finally freezes.
Out of memoryexception in SignalR due to a large real time data
2.3k views Asked by zooney At
1
There are 1 answers
Related Questions in SIGNALR
- Rails routes, rspec
- Faking instance variable in RSpec and Capybara feature spec
- Using Rspec should_receive to test that a controller calls a method on an object correctly
- stubbing 'gets' in ruby multiple times
- Testing Twitter Typeahead with RSpec/Capybara
- Rspec is giving file is not defined error
- Why spec does not see the class in the module?
- Clicking label element that unfortunately contains a link
- Why am I receiving a load error in my RSpec tests?
- If I stub out .save method in my controller test how can I check the correct show template is rendered?
Related Questions in OUT-OF-MEMORY
- Rails routes, rspec
- Faking instance variable in RSpec and Capybara feature spec
- Using Rspec should_receive to test that a controller calls a method on an object correctly
- stubbing 'gets' in ruby multiple times
- Testing Twitter Typeahead with RSpec/Capybara
- Rspec is giving file is not defined error
- Why spec does not see the class in the module?
- Clicking label element that unfortunately contains a link
- Why am I receiving a load error in my RSpec tests?
- If I stub out .save method in my controller test how can I check the correct show template is rendered?
Related Questions in IIS-EXPRESS
- Rails routes, rspec
- Faking instance variable in RSpec and Capybara feature spec
- Using Rspec should_receive to test that a controller calls a method on an object correctly
- stubbing 'gets' in ruby multiple times
- Testing Twitter Typeahead with RSpec/Capybara
- Rspec is giving file is not defined error
- Why spec does not see the class in the module?
- Clicking label element that unfortunately contains a link
- Why am I receiving a load error in my RSpec tests?
- If I stub out .save method in my controller test how can I check the correct show template is rendered?
Related Questions in REAL-TIME-UPDATES
- Rails routes, rspec
- Faking instance variable in RSpec and Capybara feature spec
- Using Rspec should_receive to test that a controller calls a method on an object correctly
- stubbing 'gets' in ruby multiple times
- Testing Twitter Typeahead with RSpec/Capybara
- Rspec is giving file is not defined error
- Why spec does not see the class in the module?
- Clicking label element that unfortunately contains a link
- Why am I receiving a load error in my RSpec tests?
- If I stub out .save method in my controller test how can I check the correct show template is rendered?
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?
Popular Tags
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)
First of all, as you already could read SignalR is built on a premise that you will not send large messages. However, in a real word it is a perfectly valid scenario.
So, what's the deal with a memory issues. SignalR has a circular buffer with a default size of 1000 elements, it stores every single message into that buffer per opened connection. So basically, if you have 100 opened connection, and you've sent 1000 messages it will be total of 100*1000 messages stored inside your memory.
Another thing you should take into consideration is .Net framework's large objects heap and garbage collection. Every object with a size greater than 85kB will went to the large object heap, next thing I should point out that garbage collector treats objects inside large object heap as a second generation objects. Taken that into account, you could realize that your objects once they have been dereferenced from the SignalR's circular buffer won't be garbage collected immediatelly due to their size.
As @davidfowl said, you really could make your data smaller, but sometimes you will not be able to do it, without introducing some pretty complex mechanic both on client and on server.
Fortunatelly, there is a way to reduce default size of SignalR's circular buffer, and you could do it by setting: