当前位置: 首页 > news >正文

门户网站开发报价单外贸营销员国家职业技能标准

门户网站开发报价单,外贸营销员国家职业技能标准,saas是不是做网站,科技狂人经历了2次优化, 优化为带缓冲输出 将原始输出 for line in lines {println(unsafe { line.vstring() })}改写为 // 带缓冲的输出函数 fn buffered_write_lines(lines []&char, buffer_size int) ! {// 获取标准输出写入器stdout : os.stdout()// 创建缓冲写入器…

经历了2次优化,

  1. 优化为带缓冲输出
    将原始输出
for line in lines {println(unsafe { line.vstring() })}

改写为

// 带缓冲的输出函数
fn buffered_write_lines(lines []&char, buffer_size int) ! {// 获取标准输出写入器stdout := os.stdout()// 创建缓冲写入器配置config := io.BufferedWriterConfig{writer: stdoutcap:    buffer_size}// 创建缓冲写入器mut bw := io.new_buffered_writer(config)!defer {bw.flush() or { panic(err) } // 确保退出时刷新}// 写入所有行for line in lines {bw.write(unsafe { line.vstring().bytes()})!bw.write('\n'.bytes())! // 手动添加换行}// 显式刷新确保所有数据写出bw.flush()!
}
  1. 在1的基础上优化比较函数,用指针取值比较代替字符串比较函数
//优化前
fn compare_offsets_old(a &&char, b &&char) int {a1:=unsafe { a.vstring() }b1:=unsafe { b.vstring() }return compare_strings(a1, b1)
}
//优化后
@[unsafe]
fn compare_offsets(a &&char, b &&char) int {mut pa := *amut pb := *bfor {if *pa == 0 || *pb == 0 || *pa != *pb {return int(*pa) - int(*pb)}pa++pb++}return 0
}

编译运行结果

#无缓冲
v/v  -prod sortlines.v
time ./sortlines varchar.txt >vvc.txtreal    0m4.034s
user    0m0.777s
sys     0m0.237s
#优化1
v/v  -prod sortlinesbuf.v
time ./sortlinesbuf varchar.txt >vvc.txtreal    0m1.904s
user    0m0.828s
sys     0m0.162s
#优化2
time ./sortlinesbuf varchar.txt >vvc.txtreal    0m1.497s
user    0m0.555s
sys     0m0.075s

没想到对V这种小众语言,DeepSeek的知识也这么渊博。
完整程序摘录如下

import os
import io
const max_lines = 1_000_000 // 最多100万行@[unsafe]
fn compare_offsets(a &&char, b &&char) int {mut pa := *amut pb := *bfor {if *pa == 0 || *pb == 0 || *pa != *pb {return int(*pa) - int(*pb)}pa++pb++}return 0
}
// 带缓冲的输出函数
fn buffered_write_lines(lines []&char, buffer_size int) ! {// 获取标准输出写入器stdout := os.stdout()// 创建缓冲写入器配置config := io.BufferedWriterConfig{writer: stdoutcap:    buffer_size}// 创建缓冲写入器mut bw := io.new_buffered_writer(config)!defer {bw.flush() or { panic(err) } // 确保退出时刷新}// 写入所有行for line in lines {bw.write(unsafe { line.vstring().bytes()})!bw.write('\n'.bytes())! // 手动添加换行}// 显式刷新确保所有数据写出bw.flush()!
}
fn main() {if os.args.len != 2 {eprintln('Usage: ${os.args[0]} <filename>')exit(1)}filename := os.args[1]// 读取文件内容buf := os.read_file(filename) or {eprintln('Failed to read file: $err')exit(1)}mut lines := []&char{cap: max_lines}//mut line_start := unsafe { &char(buf.str) }// 记录每行起始地址并将\n替换为\0for i in 0 .. buf.len {if buf[i] == `\n` {unsafe {mut p := &char(buf.str) + i*p=u8(0)if i + 1 < buf.len {lines << p + 1}}}}// 添加第一行lines << unsafe { &char(buf.str) }// 对行指针数组进行排序lines.sort_with_compare(compare_offsets)// 使用64KB缓冲区buffered_write_lines(lines, 64 * 1024) or {eprintln('写入失败: $err')exit(1)}}
http://www.dtcms.com/a/595485.html

相关文章:

  • ios网站开发工具建网站报价表
  • asp.net 手机网站开发网页设计网站导航怎么弄红色字体的
  • 广州市学校安全教育平台官网中山企业网站优化
  • iis7.5 配置网站好的网页制作公司有哪些
  • 网站建设有发展吗千万不要嫁给程序员
  • 沂源网站制作wordpress插件 订阅
  • 重庆网站制作招聘苏州百度seo
  • 社交投票论坛网站开发有没有什么做h5的网站
  • 手机网站案列宿州专业网站建设
  • 做淘宝联盟网站要多少钱关于seo的行业岗位有哪些
  • 西安小型企业网站建设为什么做美食视频网站
  • 建立网站后期需要干嘛软件开发工具介绍
  • 企业推广普通话seo推广代理
  • 网页类界面图片seo搜索引擎优化论文
  • 电子商务网站建设 精品课wordpress扒站教程
  • 建站小程序快速上线江西建设职业技能教育咨询网站
  • 做兼职什么网站大庆网站建设公司哪家好
  • 网站聚合怎么做搜索引擎优化怎么推广
  • OpenVINS代码解读---State.h和State.cpp
  • 手机医疗网站建设制作小程序的平台
  • 网站推广实践内容大型网站如何做别名
  • 网站空间和服务器网站建设及管理基本要求
  • 门户网站优点手机端网站 优帮云
  • 合肥学网站设计适合设计师看的设计网站
  • 漳州网站建设哪家好wordpress怎么建立网站
  • 自己建个网站怎么挣钱python编程100例
  • 中国建设行业峰会官方网站做网站菜单背景图片
  • 百度搜索自己的网站百度网页版登录首页
  • 上海专业做网站的网站建设公司企业网站
  • wordpress新站5天收录长沙seo优化公司