tauri-apps / tauri-apps/plugins-workspace

fs watch() and watchImmediate() in iOS so slow

Open
#1,823 0 comments 0 reactions 0 assignees View on GitHub
platform: ios plugin: fs type: bug
Dominant language
Rust
Stars
1.8k
Forks
602
Avg merge
4d 14h
Merged PRs (30d)
9

Description

it take 21s after create a file in appdata dir

## Result

![D1659C82B400C44D3A51EC4DDCD2BB5D](https://github.com/user-attachments/assets/30c941ab-eb2e-440f-bd11-073c37da206a)

## Code

```tsx
import { createSignal, onCleanup, onMount } from "solid-js";
import "./App.css";
import { BaseDirectory, exists, create, readTextFile, watch, UnwatchFn, readDir, remove, watchImmediate } from "@tauri-apps/plugin-fs";

function App() {
const [name, setName] = createSignal("");
const [debug, setDebug] = createSignal("[debug]");
const [log, setLog] = createSignal("[log]");
const [error, setError] = createSignal("[error]");

let startTime: number;
let unwatch: Promise;

onMount(async () => {
try {
unwatch = watch(
"./",
(event) => {
const elapsedTime = performance.now() - startTime;
setLog(`Elapsed time: ${elapsedTime.toFixed(2)} ms\n` + JSON.stringify(event));
},
{
baseDir: BaseDirectory.AppData,
delayMs: 500,
recursive: true,
}
);
} catch (error) {
setError(JSON.stringify(error));
}
});

onCleanup(async () => {
(await unwatch)();
});

return (


{error()}


{debug()}


{log()}

setName(e.currentTarget.value)} placeholder="Enter a file name..." />

{
startTime = performance.now();
const file = await create(name(), { baseDir: BaseDirectory.AppData });
await file.write(new TextEncoder().encode("Hello world" + new Date().toISOString()));
await file.close();
}}
>
Create


{
await remove(name(), { baseDir: BaseDirectory.AppData });
}}
>
Remove

{
setDebug(JSON.stringify(await exists(name(), { baseDir: BaseDirectory.AppData })));
}}
>
Exist

{
setDebug(await readTextFile(name(), { baseDir: BaseDirectory.AppData }));
}}
>
Read

{
const list = await readDir("", { baseDir: BaseDirectory.AppData });
setDebug(JSON.stringify(list));
}}
>
List


);
}

export default App;

```

Contributor guide

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.