Portfolio optimization problem is an important research topic in finance. The standard model of this problem, called Markowitz mean-variance model, has two conflicting criteria: expected returns and risks. In this paper, we consider a more realistic portfolio optimization problem, including both cardinality and quantity constraints, which is called Markowitz mean-variance cardinality constrained portfolio optimization problem (MVCCPO problem). We extend an algorithm which is based on a multi-objective evolutionary framework incorporating a local search schema and non-dominated sorting. To quantitatively analyze the effectiveness of the proposed algorithm, we compared our algorithm with the other five algorithms on public available data sets involving up to 225 assets. Several modifications based on the fundamental operators and procedures of the algorithm, namely, the boundary constraint handling strategy, the local search schema, the replacement strategy and the farthest-candidate approach, are proposed one-by-one. Success of this exercise is displayed via simulation results. The experimental results with different cardinality constraints illustrate that the proposed algorithm outperforms the other algorithms in terms of proximity and diversity. In addition, the diversity maintenance strategy used in the algorithm is also studied in terms of a spread metric to evaluate the distribution of the obtained non-dominated solutions. The sensitivity of our algorithm has also been experimentally investigated in this paper.