In addition to the execution governor limits, Apex has the following limits.

Maximum number of characters for a class: 1 million

Maximum number of characters for a trigger: 1 million

Maximum amount of code used by all Apex scripts in an organization: 2 MB

If a SOQL query runs more than 120 seconds, the request can be canceled by Salesforce.

Each Apex request is limited to 10 minutes of execution.

A callout request to a given URL is limited to a maximum of 20 simultaneous requests.

The maximum number of records that an event report returns for a user who is not a system administrator is 20,000, for system administrators, 100,000.

Each organization is allowed 10 synchronous concurrent events, each not lasting longer than 5 seconds. If additional requests are made while 10 requests are running, it is denied.

A user can have up to five query cursors open at a time. For example, if five cursors are open and a client application still logged in as the same user attempts to open a new one, the oldest of the five cursors is released.

Cursor limits for different Force.com features are tracked separately. For example, you can have five Apex query cursors, five batch cursors, and five Visualforce cursors open at the same time.In a single transaction, you can only reference 10 unique namespaces. For example, suppose you have an object that executes a class in a managed package when the object is updated. Then that class updates a second object, which in turn executes a different class in a different package. Even though the second package wasn't accessed directly by the first, because it occurs in the same transaction, it's included in the number of namespaces being accessed in a single transaction.