You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@dubbo.apache.org by GitBox <gi...@apache.org> on 2022/06/06 11:38:26 UTC

[GitHub] [dubbo] dragon-zhang commented on pull request #10021: [ISSUE #10020] add MemorySafeLinkedBlockingQueue

dragon-zhang commented on PR #10021:
URL: https://github.com/apache/dubbo/pull/10021#issuecomment-1147354748

   CN
         请试着用逆向思维来思考,`MemorySafeLinkedBlockingQueue`做限制的判断是基于`JVM可用内存`的,比如JVM一共有1GB的内存,`MSLBQ`使用默认构造方法。`MSLBQ`会`随心所欲地使用内存`,但是会`尽可能地保证JVM剩余的内存>=256MB`;当发现JVM剩余内存<256MB时,`MSLBQ`会`拒绝写入`。
         基于剩余内存判断的好处是,一方面能够`自适应不同的硬件`(1GB有756MB可用,2GB有1780MB),另一方面是能够以`较低成本`兼容大多数情况(不关心到底发生了多少次GC,不关心到底是YoungGC还是FullGC,因为这些最终都会导致`JVM可用内存`增加)。
   
   EN
       Please try to think in a reverse way. The judgment of `MemorySafeLinkedBlockingQueue` is based on `JVM available memory`. For example, the JVM has a total of 1GB of memory. `MSLBQ` uses the default construction method. `MSLBQ` will `use memory at will`, but will `try to ensure that the remaining memory in the JVM is >=256MB`; When the JVM's remaining memory is found to be <256MB, `MSLBQ` will `reject writing`.
       The advantage of judging based on the remaining memory is that, on the one hand, it can `adapt to different hardware`(756MB available for 1GB and 1780mb available for 2GB), and on the other hand, it can be compatible with most cases at a `lower cost` (it doesn't care how many GCs occur, or whether it is YoungGC or FullGC, because these will eventually lead to an increase in `JVM available memory`).


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org

For queries about this service, please contact Infrastructure at:
users@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@dubbo.apache.org
For additional commands, e-mail: notifications-help@dubbo.apache.org