Pregunta

Fondo

  • aplicación de Datos Básicos en Snow Leopard 10.6.4 con GC

  • Tengo una NSOutlineView respaldado por NSTreeController usando enlaces

  • Estoy creando decenas de objetos sobre un fondo NSOperation subclase, el ahorro y el uso de mergeChangesFromContextDidSaveNotification fundirse en el contexto principal, todo como se recomienda en la documentación de Apple

  • El contexto principal tiene miles de objetos

El problema

He tenido un montón de problemas de rendimiento. A veces, una combinación puede tardar unos segundos, lo que encierra mi interfaz de usuario. También parece utilizar más bien una gran cantidad de memoria.

I recientemente encontró que otros han tenido este problema también . Estoy empezando a pensar que esto es una restricción de la combinación NSTreeController / NSOutlineView con fijaciones.

Preguntas

  1. Can NSOutlineView y NSTreeController manejar miles de objetos de manera eficiente?

  2. este post parecía dar a entender que se trataba de un problema en 10.6.2 citando rdar: // 7139579. ¿Alguien sabe si esto ha sido "fijo"?

Le agradecería cualquier sugerencia.

¿Fue útil?

Solución

En pocas palabras? Creo que necesito para optimizar mi aplicación de la forma habitual. Además, había una gran cantidad de notificaciones MVA se dispararon mostrando así que tal vez menos datos es el camino a seguir. Cuando he aceleré mi aplicación, puedo informar más aquí.

Actualización: Septiembre 2011

He aprendido mucho desde que esta pregunta fue publicada. Una de mis grandes lecciones ha sido que, a veces, uno tiene que dejar de lado lo que quiere y aceptar que va a ser un rubro del diseño fuera.

Actualmente estoy rediseñando el aspecto de mi aplicación para hacerlo más rápido. NSTreeController, he aprendido, solamente está diseñado para manejar unos pocos cientos de entradas como máximo. Miles de entradas significa que el usuario sólo va a ser confundidos todos modos. He rediseñado mi interfaz de usuario a ser mucho más simple. Y ahora estoy usando una vista de tabla en su lugar, lo cual es mucho más rápido.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top