Effective Profiling of Tree Search in Constraint Programming SHISHMAREVMAXIM 2018 Combinatorial problems, which often occur in many areas of life, can be remarkably difficult to solve. Constraint programming is a modern approach to solving these problems, which involves describing the problem in a declarative language to form a model, and using general purpose solvers to search for solutions. How fast a high quality solution can be obtained is largely dependent on model used. This thesis designs an effective framework an associated techniques that help programmers in improving their models, so that they can obtain higher quality solutions faster.