Ради вашего удобства наш сайт использует cookies! Узнать больше! Мы используем cookies

Kingfisher

Kingfisher: Performance Optimizer

By tracing and measuring the vanilla source code and identifying performance bottlenecks, Kingfisher replaces them with more efficient implementations. This makes TPS/FPS gains without side effects possible.

Statement on History Issues.

Optimization Results

In a typical test environment, Kingfisher's patches themselves can achieve speedups of 2x ~ 25x. This will not translate as directly to overall TPS, because save states vary and optimization results are hard to generalize.
If you are willing to provide a save from a near vanilla late game colony, that will help Kingfisher iterate on its optimization results.

Technical Details

Kingfisher pursues zero runtime overhead, including:
- Uses PrePatcher to inject fields and replace methods, avoiding extra wrapping and call overhead.
- Uses Publicizer to expose private fields, avoiding reflection overhead.
- A conditionally compiled profiler, excluded from release builds.

Patch List

## Combat & Target Finding
AttackTargetFinder.BestAttackTarget (FreePatch)
Hediff_Shambler.TickInterval
Hediff_Shambler.PreRemoved
Hediff_Shambler.Notify_DelayedAlert

## Thoughts & Social
PawnDiedOrDownedThoughtsUtility.RemoveLostThoughts (FreePatch)
PawnDiedOrDownedThoughtsUtility.RemoveResuedRelativeThought (FreePatch)
PawnDiedOrDownedThoughtsUtility.TryGiveThoughts (Prefix)

## Jobs & Work Scanning
WorkGiver_Scanner.PotentialWorkThingsGlobal (FreePatch)
CompRefuelable.PostSpawnSetup
CompRefuelable.PostDestroy
CompRefuelable.ConsumeFuel
CompRefuelable.Refuel
ThingComp.PostDeSpawn

## Buildings & Thing Lists
ListerThings.Remove (FreePatch)
ListerBuildings.AllBuildingsColonistOfDef (FreePatch)
ListerBuildings.ColonistsHaveBuilding (FreePatch)
ListerBuildings.ColonistsHaveBuildingWithPowerOn (FreePatch)
ListerBuildings.Remove
ListerBuildings.Add

## Health & Immunity
ImmunityHandler.NeededImmunitiesNow (FreePatch)

Kingfisher is still in development, and this list will be kept in sync with updates.

FAQ

Q: Can Kingfisher be added to or removed from a save?
A: Yes. There should be no issue in theory.

Q: How compatible is Kingfisher with other mods?
A: Kingfisher aims to coexist with other mods. This requires testing and feedback, and your help is appreciated.

Q: What is Kingfisher's relationship with Performance Fish?
A: Performance Fish inspired Kingfisher and served as a reference for patch direction and implementation.

Source Code

Kingfisher is open source[github.com] under a mix of MPL 2.0 and MIT licenses.

Credits

- Publicizer by krafs.
- Harmony by Brrainz.
- Prepatcher by Zetrith.
- Performance Fish & Fishery by Bradson.

Рейтинг

Войдите, чтобы голосовать.
🏅 Нет оценок

Базовые теги:

Зависимости мода

Логотип мода

Harmony

Логотип мода

Prepatcher

Загрузить 303.4 KB