تجربه:انچه در ادامه امده بر اساس تلاش من در چند روز گذشته است.
یکی از چالشهای جدی که در wasm# با آن مواجه شدم عدم پشتیبانی از محاسبات برای داده های ۸ بایتی است!
unsigned long int
unsigned long long int
داده های ۴ بایتی هستند!
البته احتمالا در آینده نزدیک این مهم پشتیبانی می شود
یک احتمال دیگر هم هست که من نتواستم به درستی تنظیمات را انجام دهد (پارامترهای کامپایلر). از این رو اگر فردی این مهم را حل کرد لطفا به اشتراک بگذارد.
به عنوان نمونه تابع زیر فقط ۴ بایت را پر می کند!
یکی از چالشهای جدی که در wasm# با آن مواجه شدم عدم پشتیبانی از محاسبات برای داده های ۸ بایتی است!
unsigned long int
unsigned long long int
داده های ۴ بایتی هستند!
البته احتمالا در آینده نزدیک این مهم پشتیبانی می شود
یک احتمال دیگر هم هست که من نتواستم به درستی تنظیمات را انجام دهد (پارامترهای کامپایلر). از این رو اگر فردی این مهم را حل کرد لطفا به اشتراک بگذارد.
به عنوان نمونه تابع زیر فقط ۴ بایت را پر می کند!
uint64_t llui()
{
uint64_t what = 0;
for (int i = 0; i < 8; i++)
{
what += 255 << (i * 8);
}
return what;
}
Forwarded from mobile_programming
در لینک بالا یک شرایط که در اعتراض های کره در تلگرام مورد توجه کاربران فرار گرفته شده است توضیح داده شده است
https://dmitripavlutin.com/use-react-memo-wisely/
مقاله خوبی است که کاربرد React.memo را برای افزایش سرعت renderکردن با یک مثال ساده توضیح داده است.
مقاله خوبی است که کاربرد React.memo را برای افزایش سرعت renderکردن با یک مثال ساده توضیح داده است.
Dmitri Pavlutin Blog
Use React.memo() wisely
React.memo() increases the performance of functional components by preventing useless renderings. But such performance tweaks must be applied wisely.
در ادامه با یک مثال ساده این کار را با هم مرور می کنیم:
ابتدا یک پروژه react ایجاد کنید (به کمک دستورات زیر)
npx create-react-app my-app
cd my-app
npm start
ابتدا یک پروژه react ایجاد کنید (به کمک دستورات زیر)
npx create-react-app my-app
cd my-app
npm start
محتوای فایل را پاک کرده و برنامه زیر را جایگزین کنید
```
import React, { Component } from "react";
import ReactDOM from "react-dom";
const ScotchyComponent = props => <div>{props.message}</div>;
// create a version that only renders on prop changes
const MemoizedScotchyComponent = React.memo(ScotchyComponent);
// counter component
// we need a second moving component to trigger a render on our app
const Counter = props => <strong>{props.count}</strong>;
/
* Main App component
*/
class App extends Component {
state = { count: 0, value: "my message goes here" };
handleChange = e => this.setState({ value: e.target.value });
handleClick = () => this.setState(({ count }) => ({ count: count + 1 }));
render() {
const { count, value } = this.state;
return (
<div className="hero is-fullheight has-text-centered">
<div className="hero-body">
<div className="container">
<h1 className="title">
React.memo(): <Counter count={count} />
</h1>
<button
type="button"
className="button is-warning"
onClick={this.handleClick}
>
Increase Count
</button>
{/* two columns to show components */}
<input
type="text"
className="input"
value={value}
onChange={this.handleChange}
style={{ marginTop: "30px", marginBottom: "30px" }}
/>
{/* two columns to show components */}
<div className="columns is-mobile">
<div className="column">
<ScotchyComponent message={value} />
</div>
<div className="column">
<MemoizedScotchyComponent message={value} />
</div>
</div>
</div>
</div>
</div>
);
}
}
export default App;
```
```
import React, { Component } from "react";
import ReactDOM from "react-dom";
const ScotchyComponent = props => <div>{props.message}</div>;
// create a version that only renders on prop changes
const MemoizedScotchyComponent = React.memo(ScotchyComponent);
// counter component
// we need a second moving component to trigger a render on our app
const Counter = props => <strong>{props.count}</strong>;
/
* Main App component
*/
class App extends Component {
state = { count: 0, value: "my message goes here" };
handleChange = e => this.setState({ value: e.target.value });
handleClick = () => this.setState(({ count }) => ({ count: count + 1 }));
render() {
const { count, value } = this.state;
return (
<div className="hero is-fullheight has-text-centered">
<div className="hero-body">
<div className="container">
<h1 className="title">
React.memo(): <Counter count={count} />
</h1>
<button
type="button"
className="button is-warning"
onClick={this.handleClick}
>
Increase Count
</button>
{/* two columns to show components */}
<input
type="text"
className="input"
value={value}
onChange={this.handleChange}
style={{ marginTop: "30px", marginBottom: "30px" }}
/>
{/* two columns to show components */}
<div className="columns is-mobile">
<div className="column">
<ScotchyComponent message={value} />
</div>
<div className="column">
<MemoizedScotchyComponent message={value} />
</div>
</div>
</div>
</div>
</div>
);
}
}
export default App;
```