Question: Zend views usually render instantly, but with a large dataset; 1500 objects into a xml view, it takes 2-3 seconds which is unacceptable for my app. Any suggestions would be greatly appreciated.

Answer: 
**600 KB can or can not force an application to execute slow.** The execution time depends on the actual script, its persistence layer, connections from web- to database-server and more aspect. Thus:

First of all, instrument your application in such a way, that it **computes the time taken by the server-side script**.

For example, rename `index.php` to `realIndex.php` and create a new `index.php` like this:

```
$startTime = microtime(TRUE);

require_once( dirname( __FILE__ ) . '/realIndex.php' );

$endTime = microtime(TRUE);

echo '<hr />Time taken: ' . ( $endTime - $startTime ) . ' micros';

```

Certainly, this approach is trivial and does not work in each and any situation. Nevertheless, it is a starting point.

**Try to return few data**

Often, huge numbers of data items - wether or not as XML - express bad UX and technical design

Therefore I propose to process as much data at the server-side and **return a condensed data set to the client**. Don't forget: You database system is more or less always faster than your script, when it comes to retrieving and processing data.

Since users won't be able to actually mentally understand all data form a 1500 item web-page, I'd propose to **page the resulting view's data**. Retrieve 1/10 of the big data set and provide navigation control to go to previous or next page(s).

Note, that this not only helps users, it also **reduces the amount of data, your database** needs to scan and retrieve - if the database is well defined. E.g. indexes attributes to be searched and tries to keep records in tables of fixed size, etc...
Three things:

1. Forget profiling. You already determined it is slow, and this is no surprise - 1,500 sets of data is a lot of data!
2. Add paging! Determine a max amount of items per page (limit) and then add paging controls.
3. Look into a caching solution such as memcache - especially if the data is not updated that often.

Looks like some of these items were already addressed in another answer. Must mean we're on to something :-)