Hello,
memory/cpu usage depends on the need of your application, which includes background processes executed by your application, database used and queries it execute, number of hits to web site etc.
Increase in memory/cpu with application access shows that application is resource hungry

There are several factors responsible for this like -
code/script of web site may have many loops that may result into long execution time and in turn session time.
Loops are nothing but the condition checks depending on which it perform a specific action. For. e.g.-
1]
For i = 1 to 100
{
do this code
}
this loop will execute the mentioned code for 100 times.
2]
if (condition)
{
code to be executed if condition is true
}
else
{
code to be executed if condition is not true
}
etc.
The database may be very large in size hence it may take long time to search the records from database, process them, show it on your web page etc.
In case of database driven web sites, whenever a user browse it/give a hit to it, first the request would be sent to server, server will locate the web site with the help of host header, once the site is located it will start processing its code which may contain a database connection string, on establishing a successful connection with the help of DB details mentioned in connection string, it will fetch the records in memory(called as Record Sets) depending on SQL queries it process/sort them and then displays on the web site. Obviously if the database contain several tables and thousands of records in each table then it will take longer time to process them. This overall process involves memory and cpu as Record Sets are virtually created in memory itself.
Database and code optimization is the technique widely used by web developers for performance tuning for such heavy sites.
Indexing and Normalization are some other techniques used by Database Administrators to improve performance of a large database.