Duvida sobre JPA

Ola, ao usar a JPA eu faço assim:

Abro o EntityFactory no começo da aplicaçao e fecho no final.
O EntityManager, q eh usado para fazer as pesquisas, inserir, deletar eu crio e fecho, resumindo faco assim:

EntityManagerFactory factory = Persistence.createEntityManagerFactory("teste");

(...)
EntityManager em = factory.createEntityManager();
List<Categoria> list = em.createQuery("SELECT c FROM Categoria c").getResultList();
em.close();
(...)

(...)
EntityManager em = factory.createEntityManager();
Categoria cat = em.find(...);
em.close();
(...)

factory.close();

Ao fazer uns testes, percebi q se instaciar o EntityManager uma so vez, e usalo em todo o programa, q nem o factory, e fecha-lo no final, consigo uma grande diferenca de performance!
Ou seja, eh muito mais rapido usar um EntityManager para fazer tudo!

Agora eu pergunto, posso fazer isso? Ou devo abrir e fechar toda hora q for fazer uma pesquisa, etc?

Vlw!

Java Persistence API: Best Practices and Tips, TS-4902, JavaOne 2007