### Godot version

8449592d92eaeef990f5502b419d491ee3eeb7a6

### System information

Windows 11

### Issue description

Zooming in the script editor on an empty script freezes the entire editor for a few seconds, but if the file is large then it freezes for 4-5 seconds (which is unacceptable). Looks like a recent regression.

### Steps to reproduce

Just zoom in/out on the large script file.

### Minimal reproduction project

N/A
_font_set_data_ptr(sysf.rid, font_data.ptr(), font_data.size());
								Dictionary var = dvar;
								
								int best_score = 0;
								int best_match = -1;
								for (int face_idx = 0; face_idx < _font_get_face_count(sysf.rid); face_idx++) {
									_font_set_face_index(sysf.rid, face_idx);
									if (unlikely(!_font_has_char(sysf.rid, text[0]))) {
										continue;
									}
									BitField<FontStyle> style = _font_get_style(sysf.rid);
									int weight = _font_get_weight(sysf.rid);
									int stretch = _font_get_stretch(sysf.rid);
									int score = (20 - Math::abs(weight - font_weight) / 50);
									score += (20 - Math::abs(stretch - font_stretch) / 10);
									if (bool(style & TextServer::FONT_ITALIC) == bool(font_style & TextServer::FONT_ITALIC)) {
										score += 30;
									}
									if (score >= best_score) {
										best_score = score;
										best_match = face_idx;
									}
									if (best_score == 70) {
										break;
									}
								}
								if (best_match == -1) {
									_free_rid(sysf.rid);
									continue;
								} else {