diff options
| author | Jacob Richman <[email protected]> | 2025-05-30 22:18:01 +0000 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-05-30 15:18:01 -0700 |
| commit | 01768d7759b81a0f1483c751206f6afcae6fc505 (patch) | |
| tree | befda8dfe9807bfee805e291fa203cfe8dfefe29 /packages/cli/src/ui/components/MemoryUsageDisplay.tsx | |
| parent | 3291ffbe099f2fdc8f88a0c1bb06fb43b65326a9 (diff) | |
feat: add --show_memory_usage flag to display memory usage in status bar (#606)
Diffstat (limited to 'packages/cli/src/ui/components/MemoryUsageDisplay.tsx')
| -rw-r--r-- | packages/cli/src/ui/components/MemoryUsageDisplay.tsx | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/packages/cli/src/ui/components/MemoryUsageDisplay.tsx b/packages/cli/src/ui/components/MemoryUsageDisplay.tsx new file mode 100644 index 00000000..5d9a7c49 --- /dev/null +++ b/packages/cli/src/ui/components/MemoryUsageDisplay.tsx @@ -0,0 +1,40 @@ +/** + * @license + * Copyright 2025 Google LLC + * SPDX-License-Identifier: Apache-2.0 + */ + +import React, { useEffect, useState } from 'react'; +import { Box, Text } from 'ink'; +import { Colors } from '../colors.js'; +import process from 'node:process'; +import { formatMemoryUsage } from '../utils/formatters.js'; + +export const MemoryUsageDisplay: React.FC = () => { + const [memoryUsage, setMemoryUsage] = useState<string>(''); + const [memoryUsageColor, setMemoryUsageColor] = useState<string>( + Colors.SubtleComment, + ); + + useEffect(() => { + const updateMemory = () => { + const usage = process.memoryUsage().rss; + setMemoryUsage(formatMemoryUsage(usage)); + setMemoryUsageColor( + usage >= 2 * 1024 * 1024 * 1024 + ? Colors.AccentRed + : Colors.SubtleComment, + ); + }; + const intervalId = setInterval(updateMemory, 2000); + updateMemory(); // Initial update + return () => clearInterval(intervalId); + }, []); + + return ( + <Box> + <Text color={Colors.SubtleComment}>| </Text> + <Text color={memoryUsageColor}>{memoryUsage}</Text> + </Box> + ); +}; |
