2017-07-21 2 views

Répondre

0

Cela allait être un commentaire mais a été un peu long.

Réponses contradictoires quant à la raison pour laquelle il peut y avoir un manque d'équivalence here on ServerFault: Windows Server 2008 R2 max open files limit. TLDR: Windows est uniquement limité par le matériel disponible par rapport à Windows est limité par 32 par rapport à l'implémentation 64 bits (MS Technet Blog Post - Pushing the Limits of Windows: Handles). Certes, c'est une vieille information.

Mais! si vous notez les JavaDocs pour le com.sun.managementpackage, vous noterez bien sûr l'absence évidente d'une version Windows du UnixOperatingSystemMXBean qui étendrait OperatingSystemMXBean pour fournir la fonctionnalité. Même UnixOperatingSystemMXBean n'existe que pour fournir getMaxFileDescriptorCount() et getOpenFileDescriptorCount(), il semble donc peu probable que Windows ait le même concept.

Edit:

J'ai trouvé un petit programme qui montre genre de ceci, que je peaufiné. Descriptors.java

import java.lang.management.ManagementFactory; 
import java.lang.management.OperatingSystemMXBean; 
import java.lang.reflect.Method; 

class Descriptors { 
    public static void main(String [ ] args) { 
     System.out.println(osMxBean.getClass().getName()); 
     OperatingSystemMXBean osMxBean = ManagementFactory.getOperatingSystemMXBean(); 
     try { 
      Method getMaxFileDescriptorCountField = osMxBean.getClass().getDeclaredMethod("getMaxFileDescriptorCount"); 
      Method getOpenFileDescriptorCountField = osMxBean.getClass().getDeclaredMethod("getOpenFileDescriptorCount"); 
      getMaxFileDescriptorCountField.setAccessible(true); 
      getOpenFileDescriptorCountField.setAccessible(true); 
      System.out.println(getOpenFileDescriptorCountField.invoke(osMxBean) + "/" + getMaxFileDescriptorCountField.invoke(osMxBean)); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 
} 

Sur Linux:

com.sun.management.UnixOperatingSystem 
11/2048 

Sous Windows:

sun.management.OperatingSystemImpl 
java.lang.NoSuchMethodException: 
sun.management.OperatingSystemImpl.getMaxFileDescriptorCount() 
at java.lang.Class.getDeclaredMethod(Unknown Source) 
at Descriptors.main(Descriptors.java:10)