2012-01-08 2 views
5

¿Alguien me puede ayudar a obtener más información sobre qué hace este método Socket.setPerformancePreferences(int connectionTime, int latency, int bandwidth) y cómo afecta el rendimiento del Socket? La información de la API de Java es muy corta e introductoria solamente. Cualquier enlace que tenga algunos ejemplos y alguna discusión sobre esto será muy útil. Intenté buscar en Google pero también pude encontrar información muy útil.Socket.setPerformancePreferences

Respuesta

1
public void setPerformancePreferences(int connectionTime, 
             int latency, 
             int bandwidth) 

preferencias de rendimiento Conjuntos para esta toma. Los sockets usan el protocolo TCP/IP de forma predeterminada. Algunas implementaciones pueden ofrecer protocolos alternativos que tienen características de rendimiento diferentes a TCP/IP. Este método permite que la aplicación exprese sus propias preferencias en cuanto a cómo se deben realizar estos intercambios cuando la implementación elige de entre los protocolos disponibles.

Las preferencias de rendimiento están descritas por tres enteros cuyos valores indican la importancia relativa del tiempo de conexión corto, baja latencia y alto ancho de banda. Los valores absolutos de los enteros son irrelevantes; para elegir un protocolo, los valores son simplemente comparados, con valores más grandes que indican preferencias más fuertes. Los valores negativos representan una prioridad menor que los valores positivos. Si la aplicación prefiere un tiempo de conexión corto tanto en baja latencia como en ancho de banda alto , por ejemplo, podría invocar este método con los valores (1, 0, 0). Si la aplicación prefiere un ancho de banda alto por encima de la baja latencia y baja latencia por encima del tiempo de conexión corto, entonces podría llamar a este método con los valores (0, 1, 2).

Invocar este método después de que se haya conectado esta toma no tendrá el efecto .

Parámetros: connectionTime - Un valor int que expresa la importancia relativa de un tiempo de latencia de la conexión corta - Un valor int que expresa la relación importancia de bajo ancho de banda de latencia - Un valor int que expresa la relación importancia de gran ancho de banda desde: 1,5

Fuente:
http://docs.oracle.com/javase/1.5.0/docs/api/java/net/Socket.html#setPerformancePreferences(int, int, int).

Obsérvese, sin embargo si la codificación para Android, que en Eclipse, la documentación androide me dice lo siguiente acerca de este método:

public void setPerformancePreferences (int connectionTime, int latency, int bandwidth) 

desde: Nivel API de preferencias de rendimiento 1 Conjuntos para connectionTime, latencia y ancho de banda

Este método no tiene actualmente nada.

Parámetros connectionTime el valor que representa la importancia de un tiempo de conexión corto . latencia el valor que representa la importancia de baja latencia. ancho de banda el valor que representa la importancia de alto ancho de banda.

Tenga en cuenta la línea "Este método no tiene actualmente nada."No estoy seguro si esto es universalmente cierto para todos los dispositivos Android, si esta documentación está desactualizada o qué, pero según este método está técnicamente presente pero no implementado en la plataforma Android.

11

Aquí está el código fuente para este método en 1.6 de la distribución de Oracle:

public void setPerformancePreferences(int connectionTime, 
             int latency, 
             int bandwidth) 
{ 
/* Not implemented yet */ 
} 

Por lo tanto, no hace nada

+1

se ni siquiera se ejecuta después de JIT –

+0

Por defecto, este método no hace nada, a menos que se reemplaza en una sub-clase. –

+0

Same @ Sun JDK 1.8 –