Default value for maxtenuringthreshold flag for CMS garbage collector? - garbage-collection

What is the default value for maxtenuringthreshold flag for concurrent mark sweep garbage collector ?
Is it 4 or 15 ?

Effective configuration flags can be obtained via java -XX:+UseConcMarkSweepGC -XX:+PrintFlagsFinal
Note that setting some flags can affect other flags, that's why you have to enable CMS to get the CMS-specific defaults.

Default value is 6 for Java 8
-XX:MaxTenuringThreshold=threshold
The largest value is 15. The default value is 15 for the parallel (throughput) collector, and 6 for the CMS collector.
https://docs.oracle.com/javase/8/docs/technotes/tools/unix/java.html#BABFAFAE
and 4 for Java <7
The current largest value is 15. The default value is 15 for the parallel collector and is 4 for CMS.
https://www.oracle.com/java/technologies/javase/vmoptions-jsp.html#DebuggingOptions

Related

Which 3GPP spec identifies the maximim number of PDP Contexts a UE can activate?

So I know that the network limit on the max number of contexts a UE can activate is 11. However, I can't find in the 3GPP specs where this is stated explicitly. I've been searching for hours now and can't find anything. Can anyone point me in the right direction?
Okay, I think I've figured it out. It turns out I needed a little bit more time to continue digging. The limit is specified indirectly through the number of available NSAPIs that can be assigned. The number of NSAPIs is limited by the definition of the NSAPI IE specified in TS 24.008 (I'm using Rel4 for this, the situation may have changes in later releases) section 10.5.6.2. The definition allocates 4 bits to the NSAPI which encodes 11 NSAPIs and 5 reserved values. Since each PDP context needs to be allocated a specific NSAPI then there can only be a max of 11 PDP contexts because there is only 11 NSAPIs available.

NLog: ObjectReflectionCache class always initializes a MruCache object with huge capacity

I develop a WPF application which uses NLog.
When I profile it using dotMemory I can see ~300k of Memory used by a Dictionary which NLogs creates during configuration.
I do not know what the ObjectReflectionCache and MruCache are used for an whether their memory will be freed at some time. Maybe someone can clarify the purpose of the classes and the huge capacity used for the Dictionary.
Thank you.
stacktrace how NLog creates Dictionary
memory usage of Dictionary
NLog version: 4.7.2
Platform: .NET Framework 4.6.1
Current NLog config
LoggingConfiguration config = new LoggingConfiguration();
DebuggerTarget debuggerTarget = new DebuggerTarget { Name = "vs", Layout = DebuggerLayout };
DebuggerLoggingRule = new LoggingRule(nlogLoggerNamePattern, debuggerTarget);
config.LoggingRules.Add(DebuggerLoggingRule);
LogManager.Configuration = config;
Taking my hat off for someone that cares about 300 KByte. Long time since I have been focusing on overhead of this size (But still important).
From your screenshot that it is this collection:
https://github.com/NLog/NLog/blob/29879ece25a7d2e47a148fc3736ec310aee29465/src/NLog/Internal/Reflection/ObjectReflectionCache.cs#L52
The dictionary capacity is 10103 entries. Which is probably the prime number closest to 10000.
I'm guessing the size of Tkey + TValue of the Dictionary is close to 30 bytes. This gives the total result of 300 KBytes though probably unused. Guess NLog could reduce its initial overhead by not allocating 300 KByte upfront.
The dictionary is used for caching object-reflection for object-types logged for use in structured logging. Before NLog 4.7 the dictionary was only allocated when actually doing structured logging, but this changed with https://github.com/NLog/NLog/pull/3610
Update Memory footprint has been reduced with NLog ver. 4.7.3

Not possible to increase number of threads in Julia

I changed the number of threads to 4 following the documentation. I know that the maximum number of threads is limited by Sys.CPU_THREADS which is 8 in my case. But I can't change it to 8. Why is this?
What I am doing:
set JULIA_NUM_THREADS=8 in cmd
There shows no error, but in Julia I still have Threads.nthreads() = 4
If you use Atom you can set the number of threads in the settings of the julia-client package (see screenshot). The default is set to number of cores which would probably be the four you are experiencing.

Why is my process taking higher resident memory as compared to virtual memory?

'top' logs of my linux process show that its resident memory is around 6 times of the virtual memory. I have researched a lot but couldn't find any reason for such a behavior. Ideally VIRT is always higher than RES due to linux kernel's memory management. Top output is below -
13743 root 20 0 15.234g 0.010t 4372 R 13.4 4.0 7:43.41 q
Not quite.
The g suffix indicates Gibibyte(s), and t indicates Tebibyte(s).
Let's do the conversion of 0.010t to g (GiB):
zsh% print $((0.010 * 1024))g
10.24g
And 10.24g < 15.234g, so yor assumption is not correct i.e. top is correctly showing the correct values for virtual set size (VSZ) and resident set size (RSS) -- just in different units (need to take a peek at the source for why).

Maximum value for IIS .NET Compilation Batch Time-out

What is the maximum value for the IIS -> .NET Compilation -> Batch -> time-out ?
i need to set it to maximum in order to avoid compilation cannot be completed within the time-out period, the compiler reverts to single-compilation mode for the current page.
The maximum value internally is 2147483647 (32-bit signed integer). In the UI of IIS you have to specify the value as hh:mm:ss, so that would be something like:
596523 hours or 68 years.
I think even if your site exceeds the default value of 15 minutes you have a problem with your application.
By the way, to find this value, open:
%systemroot%\System32\inetsrv\config\schema\ASPNET_schema.xml
and search for batchTimeout

Resources