Comments (4)
I've performed a quick benchmark of pleco with chess_perft
binary I wrote. Pleco does seem quite a bit slower than either shakmaty or this library (about a factor of 2.5 - depends on the position).
I'll do a more thorough analysis and update the chess_perft crate, with some graphs and whatnot.
Additionally, take a look at the chess_uci
crate I wrote if you get a chance: https://github.com/jordanbray/chess_uci. It's not published on crates.io yet, but I hope to get it into a stable state soonish. My goal there is to deal with the uci protocol details and allow you to focus on the engine itself. Most of the pieces are there and it may make your life easier, if for nothing else than all the string parsing.
from chess.
One other thing, make sure to enable opt-level = 3
in your Cargo.toml when using this crate because rust does a really bad job of generating code without optimizations. A small performance boost can also be achieved with RUSTFLAGS="-C target-cpu=native"
which allows the use of some bitwise instructions.
from chess.
Closing this in favor of jordanbray/chess_perft#1. This is where I keep the benchmarking code.
from chess.
Thanks for the quick and detailed response! I really appreciate it. I'll be using chess
for my engine. :) Also thanks for pointing me to your uci library! I'll definitely take a look at it, too.
from chess.
Related Issues (20)
- Move generation is unsound for non-standard positions HOT 1
- Out of bounds square can cause out of bounds access. HOT 1
- Build step is prohibitively expensive HOT 4
- Board.status unnecessarily calculates all legal moves
- Removing en passant doesn't work
- `remove_move` and `remove_mask` truncate moves in the move generator.
- Update source code HOT 1
- Display Game as PGN
- Suggest: add URL to this repo to rust doc
- Repetition in tests
- panic from trying build "1nbqkbnr/1ppppppp/8/8/2PP4/B4N2/P3PPPP/RN1QKB1R b KQkq -"
- Bug in Board Hash trait implementation HOT 3
- [Question] Why does Square allow above 63? HOT 1
- MoveGen throws an IlleganSanMove for a legal move HOT 1
- Promotion moves not implemented in ChessMove::from_san HOT 1
- feat: a to san function HOT 2
- chess::Error should implement std::error::Error
- Incorrect FEN generated: HOT 1
- Defended Piece
- Question in `next` of `impl Iterator for MoveGen` HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from chess.