- ¿Cuál es una forma adecuada de medir a PHP objetos tamaño real en bytes/kilobytes?
motivo para solicitar:
Estoy utilizando memcached para el almacenamiento caché en mi aplicación web que será utilizado por los clientes no técnicos. Sin embargo, dado que memcached tiene un maximum size of 1mb, sería genial tener una función configurada desde el principio que me permita medir el tamaño de los objetos/matrices/conjuntos de datos seleccionados, para evitar que crezcan demasiado.PHP: ¿mide el tamaño en kilobytes de un objeto/matriz?
Tenga en cuenta que solo planeo utilizar esto como una herramienta de alerta/diagnóstico para realizar un seguimiento del rendimiento de la memoria caché y las posibilidades de almacenamiento a lo largo del tiempo. Supongo que el cálculo de la velocidad en cada llamada memcached set/add reduciría un poco las cosas.
También soy consciente de almacenar grandes conjuntos de datos en memcached quita la idea de almacenar cosas en la memoria RAM, y esa es exactamente la razón por la que necesito saber de antemano para evitar que los clientes construyan grandes conjuntos de datos.
Muchas gracias
Eso será un byte de 16 bits debido a Unicode ¿verdad? –
¡Hola! Eso es justo lo que estaba a punto de preguntar. ¿Cómo maneja UTF8 y los caracteres de bytes múltiples? – Industrial
Bueno, todo depende. Si tiene sobrecarga la función mb_string, entonces tiene problemas. Si no, 'strlen' devolverá la longitud del byte (que es lo que quieres en primer lugar). Si tiene 'mbstring.func_overload' activado, puede usar' mb_strlen (serialize ($ foo), '8bit'); 'en lugar de strlen. Pero tenga en cuenta que mb_string debe estar instalado para usarlo. Voy a editar en una versión más robusta ... – ircmaxell